Winrt проблемы с std :: filesystem? - PullRequest
0 голосов
/ 05 июня 2018

Я клонировал 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 голосов
/ 05 июня 2018

Полагаю, вы упустили важный факт, что каждое приложение winrt запускается в собственной песочнице.Каждый путь к файлу, к которому вы пытаетесь получить доступ, относится к корню изолированной программной среды приложения, хотя данный путь является абсолютным, он является абсолютным в изолированной программной среде, и система интерпретирует его как относительный путь к корневому каталогу изолированной среды.Чтобы получить доступ к файлам вне изолированной программной среды, вы должны приложить больше усилий, указать путь к нужным файлам, совместно используемым между изолированными программными средами, или поместить файл в уже доступные системные общие каталоги.В этом случае путь снова не будет абсолютным, он будет доступен относительно общего пути.

...