使用std :: filesystem的winrt问题?

时间:2018-06-05 02:26:57

标签: c++ uwp windows-runtime

我克隆了https://github.com/kennykerr/cppwinrt,并添加了两行@line 70(包括文件系统标题后):

if (!std::experimental::filesystem::exists(winrt::to_string(file.Path())))
    exit(12345);

它以12345退出。总是。为什么?我认为winrt应该使用标准的iso c ++?即使我硬编码文件名而不是" to_string(data_file)",它仍然会死。

如果它与在沙箱中运行的UWP有关,那很好,但为什么文件选择器没有工作?

这或多或少是我能提出的最简单的例子。出于某种原因,无论我尝试什么,我都无法对文件进行操作。

1 个答案:

答案 0 :(得分:0)

我想你错过了每个winrt应用程序在自己的沙箱中运行的重要事实。您尝试访问的每个文件路径都相对于应用程序沙箱根目录,尽管给定路径是绝对路径,但它在沙箱中是绝对的,系统会将其解释为沙箱根目录的相对路径。要访问沙箱之外的文件,您应该付出更多努力,声明沙箱之间共享所需文件的路径,或将文件放入已经可用的系统共享目录中。在这种情况下,路径将不再是绝对路径,将相对于共享路径访问它。