Windows 8 метро приложение доступа к произвольному пути к файлу - PullRequest
2 голосов
/ 24 октября 2011

В метро следующие коды будут исключать :

String fileName = @"C:\Test\dd\ccc.jpg";
StorageFile file = await StorageFile.GetFileFromPathAsync(fileName);

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

Кто-нибудь знает, как прочитать файл по произвольному пути к файлу? Это возможно в приложении в стиле metro.

1 Ответ

5 голосов
/ 24 октября 2011

Не возможно. Вы можете получить доступ к библиотекам - изображениям, документам, видео - и если пользователь поместит эту папку в одну из этих библиотек (с помощью проводника Windows на рабочем столе), все готово. Вы даже можете написать настольный exe-файл, который поместит папку в библиотеку, но вы не можете запустить этот exe-файл самостоятельно или быть уверенным, что пользователь не изменил библиотеки вручную.

Найдите в SHCreateItemInKnownFolder отправную точку для API-интерфейсов оболочки для работы библиотеки. Я не пробовал вызывать эти API со стороны Metro; Вы можете видеть, помогают ли они, но моя ставка - они не будут доступны. Если вам не нравится взаимодействие COM с API-интерфейсами оболочки, вы можете посмотреть исходный код Windows API Code Pack - я бы не хотел связывать все это с приложением Metro, но вы может скопировать его часть в ваше приложение.

...