【发布时间】:2022-01-13 15:11:59
【问题描述】:
我无法从我的 C++ 应用程序中删除临时文件,它因“权限被拒绝”错误而失败。这是代码sn-p,
void DeleteTempFile(const std::wstring& path) {
wchar_t* wc = const_cast<wchar_t*>( path.c_str() );
if( _wremove( wc ) != 0 )
Log(fatal, std::string("Error: ") + std::strerror(errno) + std::string(" while deleting file: ") + std::string(path.begin(),path.end()));
else
Log(fatal, std::string("Successfully deleted file: ") + std::string(path.begin(),path.end()));
}
这是我在执行此代码时得到的日志,
错误:删除文件时权限被拒绝:C:/Windows/SERVIC~1/LOCALS~1/AppData/Local/Temp /abcD12E.pdf
有人可以帮我解决这个权限问题吗?
【问题讨论】:
-
我什至没有权限查看该目录。您确定文件是首先创建的吗?
-
如果您以提升的权限运行应用程序,它可以工作吗?
-
@BoP 是的,文件存在。我可以在管理模式下从 Cygwin 终端查看文件。
-
@Eljay 我正在从 Visual Studio 运行这个应用程序,它正在管理模式下运行。
-
您不能删除已打开的文件,您将获得权限被拒绝。即使有提升的特权。 (在 Windows 上。其他操作系统可能有不同的限制和允许。)