Создать папку относительно выбранного файла в приложении Windows Store

Я борюсь с API-интерфейсом приложений Windows Store. Я хочу создать подпапку во время экспорта данных, чтобы записать в нее дополнительные файлы. Это означает:

data.txt
extra
+ 1.txt
+ 2.txt

Файл data.txt выбирается пользователем, поэтому писать его без проблем. Но как я могу создать эту подпапку?

storageFolder.getFolderAsync("C\some\path\where\data\is\extra").done(...

не работает. Кажется, что из-за ограничений безопасности не удается.

Я мог бы жить с ограничением, чтобы писать в документы. Но это также не работает, когда пользователь выбирает data.txt в папке документов.

2 ответа

Я боюсь, что это поведение "как задумано".

Yoy может делать все, что вы хотите, в папках, специфичных для вашего приложения (AppData). Вы можете читать / редактировать файл в любом месте системы, когда пользователь дает вам авторизацию через активацию файла или средство выбора файлов. Существует API для продления срока действия этой авторизации. Вы можете прочитать / отредактировать файл в известной папке, если в вашем приложении проверены требуемые возможности в его манифесте.

Другие взаимодействия с файловой системой не будут выполнены из-за ограничений безопасности.

Если решено позволить пользователю выбрать каталог вместо файла. FolderPicker справится с этой задачей. Это не мое предпочтительное решение, потому что пользователь теряет возможность выбрать имя целевой папки. Опция создания в FolderPicker, как в Windows без RT, решит эту проблему, но пока нет.

Так что мой пользователь должен создать папку экспорта в Documents by Explorer, а затем выбрать ее в приложении.

Моя структура:

Documents
+ export (created by user in explorer)
++ 2012-10-04 (hard coded by app)
+++ data.txt
+++ extra
++++ 1.txt
++++ 2.txt
Другие вопросы по тегам