Можете ли вы открыть указанный пользователем файл в режиме чтения / записи с помощью Silverlight

У меня есть некоторые проблемы в Silverlight, когда я получаю определенное поведение при сохранении и открытии файлов.

Что бы мы хотели: Мы хотели бы предложить пользователю открыть файл при запуске приложения Silverlight. Затем мы прочитали бы любую информацию из этого файла и использовали бы ее, чтобы установить состояние нашего приложения. Мы также хотели бы ответить пользователю, нажав "сохранить", и записать все изменения в состоянии обратно в исходный файл.

Что мы пробовали:

Изолированное хранилище: делает то, что нам нравится, но у нас слишком много проблем с людьми, которые не могут выполнять резервное копирование работы, стирают жесткие диски, используют разные компьютеры (в одной локальной сети) и т. Д. В целом большинство наших пользователей нравится сохранять в указанном месте, чтобы они могли хранить свои работы на сетевом диске или USB-ключе.

Открытые диалоговые окна файлов: предоставьте нам поток только для чтения, мы не сможем обновить файл, когда пользователь нажмет кнопку "Сохранить".

Диалоги сохранения файлов: не позволяйте нам читать уже существующие конкурсы файла / перезаписывать выбранные файлы.

Режим повышенного доверия: не работает внутри браузера. Локальная установка не возможна, потому что наши пользователи не являются администраторами своих компьютеров.

Есть ли способ сделать то, что мы хотели бы, что мы упускаем из виду?

1 ответ

Решение

Короткий ответ - нет.

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

Вместо состояния "Открыть / Сохранить файл" состояния приложения используйте "Импорт / Экспорт". Пользователи с большей вероятностью согласятся с необходимостью указать файл в OpenFileDialog для импорта и указать файл (хотя и тот же) в SaveFileDialog для экспорта.

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

Другой вариант (возможно, в дополнение к вышесказанному) - сохранить копию состояния приложения на сервере. Изменения состояния в изолированном хранилище также направляются на сервер. Изолированное хранилище становится больше похожим на кеш.

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

Другие вопросы по тегам