Можете ли вы открыть указанный пользователем файл в режиме чтения / записи с помощью Silverlight
У меня есть некоторые проблемы в Silverlight, когда я получаю определенное поведение при сохранении и открытии файлов.
Что бы мы хотели: Мы хотели бы предложить пользователю открыть файл при запуске приложения Silverlight. Затем мы прочитали бы любую информацию из этого файла и использовали бы ее, чтобы установить состояние нашего приложения. Мы также хотели бы ответить пользователю, нажав "сохранить", и записать все изменения в состоянии обратно в исходный файл.
Что мы пробовали:
Изолированное хранилище: делает то, что нам нравится, но у нас слишком много проблем с людьми, которые не могут выполнять резервное копирование работы, стирают жесткие диски, используют разные компьютеры (в одной локальной сети) и т. Д. В целом большинство наших пользователей нравится сохранять в указанном месте, чтобы они могли хранить свои работы на сетевом диске или USB-ключе.
Открытые диалоговые окна файлов: предоставьте нам поток только для чтения, мы не сможем обновить файл, когда пользователь нажмет кнопку "Сохранить".
Диалоги сохранения файлов: не позволяйте нам читать уже существующие конкурсы файла / перезаписывать выбранные файлы.
Режим повышенного доверия: не работает внутри браузера. Локальная установка не возможна, потому что наши пользователи не являются администраторами своих компьютеров.
Есть ли способ сделать то, что мы хотели бы, что мы упускаем из виду?
1 ответ
Короткий ответ - нет.
Однако вот некоторые идеи, которые включают изменение семантики пользовательского интерфейса, что может сделать вещи более приемлемыми для пользователей.
Вместо состояния "Открыть / Сохранить файл" состояния приложения используйте "Импорт / Экспорт". Пользователи с большей вероятностью согласятся с необходимостью указать файл в OpenFileDialog для импорта и указать файл (хотя и тот же) в SaveFileDialog для экспорта.
Обычное повседневное состояние хранится в изолированном хранилище, поэтому необходимость импорта / экспорта вызывается только тогда, когда пользователь хочет перенести свои данные на другой компьютер.
Другой вариант (возможно, в дополнение к вышесказанному) - сохранить копию состояния приложения на сервере. Изменения состояния в изолированном хранилище также направляются на сервер. Изолированное хранилище становится больше похожим на кеш.
Когда пользователь использует другую машину, состояние его приложения выбирается с сервера, обновляющего копию в изолированном хранилище текущей машины.