C++代码如何获取远程ftps服务器的文件大小等信息
时间: 2024-04-03 18:34:05 浏览: 85
你可以使用libcurl库来获取远程FTP服务器的文件大小等信息。以下是一个简单的C++示例代码:
```c++
#include <curl/curl.h>
#include <iostream>
size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream)
{
return size * nmemb;
}
int main()
{
CURL *curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/file.txt");
curl_easy_setopt(curl, CURLOPT_NOBODY, 1L); // 不下载文件内容,只获取文件信息
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); // 必须设置,否则会输出文件内容
CURLcode res = curl_easy_perform(curl);
if(res == CURLE_OK) {
double size = 0;
res = curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &size);
if(res == CURLE_OK)
std::cout << "文件大小为:" << size << " 字节" << std::endl;
else
std::cerr << "获取文件大小失败:" << curl_easy_strerror(res) << std::endl;
}
else {
std::cerr << "获取文件信息失败:" << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
}
return 0;
}
```
这个代码通过设置 `CURLOPT_NOBODY` 选项来告诉libcurl只获取文件信息而不下载文件内容。然后使用 `curl_easy_getinfo` 函数来获取文件大小。
阅读全文