我使用movefile()
将文件移动到特定文件夹,
但是当我尝试这样做时,它不起作用,因为文件夹的名称中有空格“New Folder”
但如果文件夹的名称没有空格,则可以使用
以下是示例(没有名称中包含空格的文件夹):
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());
有一个包含空格
的文件夹的例子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());
我没有收到任何语法错误,但我很确定,因为“新”和“文件夹”之间存在空间,所以无效
有什么方法可以解决吗?
答案 0 :(得分:6)
我的项目配置为ANSI / MBCS而不是Unicode(从而允许std::string::c_str()
可以通过基于TCHAR
的{{1}}宏),显示的确切代码(仅替换MoveFile()
和我自己一起工作对我来说非常好。 Username
返回TRUE,文件实际上已移动。
MoveFile()
所以,问题必须在其他地方。之一:
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
不会为您创建它!事先使用MoveFile()
或类似功能),或者无法访问。如果CreateDirectory()
返回FALSE,则需要致电MoveFile()
以找出失败的原因。