admin管理员组文章数量:1435859
I was trying to write a simple program to move files from directory A to directory B, in the end the file moving part keeping giving ACCESS DENIED errors and what so. Here is the code
const char* src = "C:\\Users\\user1\\testfolder\\source\\test.txt";
const char* dest = "C:\\Users\\user1\\testfolder\\destination";
try {
std::filesystem::rename(src, dest);
} catch (std::filesystem::filesystem_error& e) {
std::cout << e.what() << '\n';
}
return 0;
This prints the error ACCESS DENIED
VS2022 is running as administrator. C++ Version is C++ 17. The file can be moved through cmd with no problem.
MoveFile exits with error 183 MoveFileEx(src,dest,MOVEFILE_REPLACE_EXISTING) exits with error 5 (ACCESS DENIED)
I tried restarting VS, running as admin, and tried other file moving solutions, none seem to work.
I was trying to write a simple program to move files from directory A to directory B, in the end the file moving part keeping giving ACCESS DENIED errors and what so. Here is the code
const char* src = "C:\\Users\\user1\\testfolder\\source\\test.txt";
const char* dest = "C:\\Users\\user1\\testfolder\\destination";
try {
std::filesystem::rename(src, dest);
} catch (std::filesystem::filesystem_error& e) {
std::cout << e.what() << '\n';
}
return 0;
This prints the error ACCESS DENIED
VS2022 is running as administrator. C++ Version is C++ 17. The file can be moved through cmd with no problem.
MoveFile exits with error 183 MoveFileEx(src,dest,MOVEFILE_REPLACE_EXISTING) exits with error 5 (ACCESS DENIED)
I tried restarting VS, running as admin, and tried other file moving solutions, none seem to work.
Share Improve this question edited Nov 16, 2024 at 2:53 President James K. Polk 42.1k30 gold badges110 silver badges146 bronze badges asked Nov 15, 2024 at 21:41 クッキーくんクッキーくん 131 silver badge2 bronze badges 1 |1 Answer
Reset to default 2There is at least one problem with your dest
path value, possibly two problems.
If the source in a call to
std::filesystem::rename
is a non-directory file (as yours is), then the destination must also be a non-directory file.Even if the new file does not (yet) exist, the directory into which you are placing it must exist (third second-level bullet in the page linked below).
So, first make sure that your C:\\Users\\user1\\testfolder\\destination
folder exists, then add the destination filename to the specified target path, as below:
const char* dest = "C:\\Users\\user1\\testfolder\\destination\\test.txt";
Further reference: cppreference
本文标签:
版权声明:本文标题:I can't move files through C++ (both MoveFile, MoveFileEx, filesystem::rename) - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745669635a2669495.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
dest
? – Michael Liu Commented Nov 15, 2024 at 21:44