我克隆了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有关,那很好,但为什么文件选择器没有工作?
这或多或少是我能提出的最简单的例子。出于某种原因,无论我尝试什么,我都无法对文件进行操作。
答案 0 :(得分:0)
我想你错过了每个winrt应用程序在自己的沙箱中运行的重要事实。您尝试访问的每个文件路径都相对于应用程序沙箱根目录,尽管给定路径是绝对路径,但它在沙箱中是绝对的,系统会将其解释为沙箱根目录的相对路径。要访问沙箱之外的文件,您应该付出更多努力,声明沙箱之间共享所需文件的路径,或将文件放入已经可用的系统共享目录中。在这种情况下,路径将不再是绝对路径,将相对于共享路径访问它。