2009-09-04 3 views
1

Я хочу получить полное имя из файла в Silverlight OpenFileDialog, когда я попробую, Silverlight выдает мне сообщение об ошибке.Невозможно ли получить FullName из файла с помощью Silverlight OpenFileDialog?

Я видел, что есть атрибут на FullName, говорящий, что это [SECURITY CRITICAL], но мне нужно отобразить полный путь, неужели я не могу это сделать?

ответ

2

OpenFileDialog не будет предоставлять полное имя просто потому, что он не хочет, чтобы вы изменяли эти файлы. С Silverlight у вас есть доступ только к изолированному хранилищу, и файл может находиться за пределами этого хранилища. Но вы могли бы просто open the file and copy it на изолированное хранилище, а также изменить его там.
Только что обнаружил, что bassfriend нашел эту ссылку и разместил ее выше. Виноват. Опять же, ссылка находится в топ-20 Google. :-)

Другая причина, по которой вы не получите полное имя файла, состоит в том, что это имя файла может содержать конфиденциальную информацию. Например, файл в папке «Мои документы» может вывести имя пользователя для входа в систему.

В принципе, это ограничение безопасности. Вы не должны обходить его, даже если это будет возможно. Если вы найдете способ обойти это, MS, вероятно, выпустит обновление безопасности, чтобы снова закрыть эту утечку ...

1

Попробуйте использовать свойство файла как описано здесь: Example, MSDN

2

Ну да, Silverlight не позволит вам получить полную информацию о маршруте. Ваша тема, похоже, тесно связана с этим question. Возможно, ответы там проливают больше света на ваш вопрос.

1

Silverlight OpenFileDialog по соображениям безопасности ведет себя по-разному к стандартным формам OFD. Если вы извлекаете SelectedFile, он фактически возвращает объект FileDialogFileInfo, который содержит имя файла, а не путь к файлу. Когда вы об этом думаете, это имеет смысл - вы не хотите, чтобы кто-то писал фрагмент вредоносного кода, который может получить ручку в вашей файловой системе.

Смежные вопросы