【发布时间】:2019-05-29 03:58:57
【问题描述】:
我正在制作一个程序,它递归地列出某个目录中的所有文件,并使用 WinINet 将每个文件分别上传到 FTP 服务器。 我遇到的问题是在 FtpPutFile() 函数中使用 filesystem::path::filename 因为需要 LPCWSTR。 转换它(或以某种方式按原样使用)的最佳和最简单的方法是什么?
std::string path = "C:\\Programs";
for (const auto & entry : std::experimental::filesystem::recursive_directory_iterator(path))
FtpPutFile(hIConnect, entry.path().filename(), entry.path().filename(), FTP_TRANSFER_TYPE_BINARY, 0);
我得到的错误是: 不存在从“const std::experimental::filesystem::v1::path”到“LPCWSTR”的合适转换函数
编辑:这是一个对我有用的解决方案,遵循 Lightness 解决方案:
std::string path = "C:\\Programs";
for (const auto & entry : std::experimental::filesystem::recursive_directory_iterator(path))
FtpPutFile(hIConnect, entry.path().wstring().c_str(), entry.path().filename().wstring().c_str(), FTP_TRANSFER_TYPE_BINARY, 0);
【问题讨论】:
标签: c++ windows visual-studio-2017 wininet