UWP Desktop Bridge: как предложить пользователю сохранить свои данные в выбранной им папке перед удалением-обновлением приложения?

Я планирую разработать приложение с помощью Desktop Bridge. Данные будут сохранены в папке, содержащей базы данных SQLite и другие документы в подпапках.

Я предполагаю, что данные могут быть сохранены только внутри изолированной программной среды приложения UWP с ограниченными права доступа к файлам

Поскольку данные важны для пользователя, мне нужно найти простой способ перед удалением или обновлением, чтобы запросить у него с помощью средства выбора для сохранения папки данных и подпапок в произвольно выбранном месте.

1. Пользователь одним действием выбирает желаемое местоположение-папку, а затем программное обеспечение копирует папку-подкаталог данных в выбранную пользовательскую папку, которая может быть пустой или перезаписывать существующую предыдущую резервную копию без предупреждений.

(не усложняйте, как этот ответ SO MostRecentlyUsedList. Я также не знаю, можно ли отслеживать пустую папку)

2. Как подсказать пользователю перед удалением или обновлением (чтобы сохранить последнюю резервную копию (возможно, в другом месте, как он хочет).

Это большая проблема, с которой я столкнулся, чтобы создать свое приложение.


person stefan2410    schedule 10.10.2018    source источник


Ответы (1)


Ваше первое предположение неверно. В качестве настольного приложения-моста вы можете сохранять в любом месте файловой системы, где у текущего пользователя есть права на запись. Это то же самое, что и для обычного приложения Win32/Winforms/WPF. Единственное отличие состоит в том, что записи в глобальную папку AppData перенаправляются в папку AppData конкретного приложения. Также обратите внимание, что вы не можете писать в свою собственную папку установки.

См. этот абзац:
https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-behind-the-scenes#file-system

"Запись в файлы и папки, не являющиеся частью пакета, игнорируется мостом и разрешена, если у пользователя есть разрешение."

person Stefan Wick MSFT    schedule 10.10.2018