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.
There 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