Может ли Silverlight изменить файл на компьютере локального пользователя? - PullRequest
5 голосов
/ 19 января 2010

Я рассматриваю возможность написания приложения на C # /. NET, которое будет программно изменять файл XML на компьютере пользователя, и я пытаюсь определить, будет ли Silverlight (и какие версии, в каких режимах) работать для этой задачи.

Вот рабочий процесс:

  • Пользователь выбирает файл
  • Приложение изменяет файл
  • Приложение сохраняет файл, перезаписывая оригинальный файл

Возможно ли это в Silverlight? Если да, то в каких версиях и на каких условиях?

Ответы [ 6 ]

3 голосов
/ 19 января 2010

Среда выполнения Silverlight работает внутри «песочницы» безопасности.

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

В Silverlight 4 у вас будет возможность доступа к файлам из «специальных каталогов», таких как «Мои документы», «Моя музыка», «Мои рисунки» и т. Д. (http://weblogs.asp.net/nmarun/archive/2009/11/27/local-file-access-silverlight-4.aspx)

)
2 голосов
/ 19 января 2010

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

Я подозреваю, что это, возможно, не то, что вы хотите, так как пользователь выбирает файл.

Конечно, в SL3 пользователь может выбрать файл, а затем прочитать его.

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

В SL4 с OOB с повышенными привилегиями вы можете сохранять такие файлы прямо в папке пользователя, например, Мои документы.

Редактировать

Просто чтобы быть абсолютно ясным, вы не можете записать в файл, который был получен с использованием только чтения OpenFileDialog, вы не можете прочитать в файл, который был получен с использованием только записи SaveFileDialog.

1 голос
/ 19 января 2010

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

Кроме этого, приложение Silverlight имеет доступ к собственному изолированному хранилищу.

1 голос
/ 19 января 2010

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

. В .NET Framework изолированное хранилище - это механизм хранения, который позволяет частично доверенным приложениям сохранять данные налокальный компьютер без нарушения каких-либо политик безопасности, установленных на компьютере.Изолированное хранилище существует со времен первой версии .NET Framework и особенно полезно для загруженных, частично доверенных компонентов, которым обычно не предоставляется доступ к стандартным механизмам ввода-вывода.Тем же приложениям обычно предоставляется право использовать изолированное хранилище.Таким образом, приложения, поступающие из потенциально ненадежных источников, могут по-прежнему выполнять некоторые операции дискового ввода-вывода, хотя и контролируемым образом.

Подробнее об этом можно прочитать в следующей статье:

Silverlight и локальное хранилище

1 голос
/ 19 января 2010

SL3 обеспечивает доступ к изолированному хранилищу, SL4 еще больше открывает доступ для доверенных приложений, позволяя им получать доступ к файлам в MyDocs, MyPictures и т. Д.

0 голосов
/ 19 января 2010

sl 4 имеет некоторые возможности

http://www.silverlight.net/learn/videos/silverlight-4-beta-videos/local-file-access/

но не общий доступ к локальной файловой системе

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