std :: filesystem :: exists函数在Windows 10上无法正常工作

时间:2019-09-05 09:55:27

标签: c++ windows c++17

我用c ++ 17 msvc编写如下代码:

#include <filesystem>
#include <iostream>
int main()
{
    using namespace std::filesystem;
    std::wstring s = L"c:\\windows\\system32\\applicationframehost.exe";
    path p(s);
    std::cout << absolute(p) << std::endl;
    std::cout << exists(p) << std::endl;
    std::cin.get();
    return 0;
}

并在Windows 10上运行。 应用程序将打印0->表示该文件不存在。 但是它确实存在,当我尝试使用Cygwin ls -l命令时,它显示出很好的结果: @myuser> ls -l c:\windows\system32\applicationframehost.exe -rwxr-xr-x 2 cody.nguyen 1049089 69800 Apr 12 2018 'c:\windows\system32\applicationframehost.exe'

您能否解释一下为什么以及如何通过代码解决此问题? 谢谢, P / S:函数exists(p)C:\Windows\System32\中的某些文件以外的几乎所有其他文件都可以完美地工作。我只是尝试以admin / system / user权限运行我的应用程序,但是得到了相同的结果。 使用ls -l命令,我只能以用户权限运行它。

0 个答案:

没有答案
相关问题