我正在使用movefile()将文件移动到特定的文件夹,但是当我尝试这样做时,它不起作用,因为文件夹的名称中有空格"新文件夹",但如果文件夹的名称没有空格,则它可以工作
这是示例(没有包含名称空间的文件夹):
std::string input1 = "C:\\Users\\Username\\link.txt";
std::string input2 = "C:\\Users\\Username\\Desktop\\NewFolder\\link.txt";
MoveFile(input1.c_str(), input2.c_str());
Run Code Online (Sandbox Code Playgroud)
当有一个包含空格的文件夹时,就有了这个例子
std::string input1 = "C:\\Users\\Username\\link.txt";
std::string input2 = "C:\\Users\\Username\\Desktop\\New Folder\\link.txt"; //here's the folder
MoveFile(input1.c_str(), input2.c_str());
Run Code Online (Sandbox Code Playgroud)
我没有得到任何语法错误,但我很确定,它不起作用,因为"新"和"文件夹"之间的这个空间
有什么办法解决吗?
我的项目配置为ANSI/MBCS而不是Unicode(因此允许std::string::c_str()传递给TCHAR基于MoveFile()宏),显示的确切代码(仅替换Username我自己的代码)对我来说非常好. MoveFile()返回TRUE,实际移动文件.
std::string input1 = "C:\\Users\\<my username>\\link.txt";
std::string input2 = "C:\\Users\\<my username>\\Desktop\\New Folder\\link.txt";
MoveFile(input1.c_str(), input2.c_str()); // <-- SUCCEEDS
Run Code Online (Sandbox Code Playgroud)
所以,问题必须在其他地方.或者:
MoveFile()不会为您创建!CreateDirectory()事先使用或类似功能),或者无法访问.如果MoveFile()返回FALSE,则需要调用GetLastError()以找出失败的原因.
| 归档时间: |
|
| 查看次数: |
128 次 |
| 最近记录: |