WinRT: приложение для перечисления файлов вне библиотек и известных папок

StackOverflow https://stackoverflow.com//questions/10701660

Вопрос

Я работаю над приложением Metro, которое показывает содержимое данной папки в элементе управления ListView. MS решила, что разработчики не нуждаются в классе System.io.directory и полностью удаляли его из структуры.

Я ищу замену, чтобы перечислить файлы в C # в приложении в стиле метро.Я проверил все образцы перечисления, предоставленные MS, и все они, кажется, перечисляют только библиотеки Windows, используя класс KnownFolders, что-то вроде:

StorageFolder picturesFolder = KnownFolders.PicturesLibrary;
.

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

Кто-нибудь знает, как это возможно в WinRT ???

Это было полезно?

Решение

Вы, по дизайну, чрезвычайно ограничены в этой области для приложений Метро.Идея состоит в том, что приложение Metro предоставляется только доступ к тем вещам, которые он доверяет доступу, так что вы можете либо:

  1. Доступ к локальному хранилищу, специфично для вашего приложения
  2. Доступ к горстку известных мест хранения или
  3. Доступ к конкретному предоставленному расположению.
  4. Посмотрите на http://msdn.microsoft.COM / EN-US / Библиотека / Windows / Apps / HH464959.aspx Чтобы получить представление о том, что вы сможете получить доступ.

Другие советы

from from http://tirania.org/blog/archive/2011/sep-15.html < / a>:

Когда вы используете C # и VB, вы используете Full .NET Framework. Но они решили разоблачить меньшее подмножество API разработчикам Чтобы подтолкнуть новое видение для Windows 8.

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

Теперь вы замечаете, что я сказал «выставлен», а не «ушел».

Что они сделали, так это то, что они подвергаются только компилятору набор API Когда вы нацеливаете профиль Metro. Так что ваше приложение не будет Случайно вызов файла. Create Например. Во время выполнения, хотя CLR загрузит библиотеку полной классы, тот, который содержит File.Create, поэтому внутренне, CLR может назвать что-то вроде File.Create, именно только у вас не будет доступа к нему.

Это разделение похоже на то, что было сделано в прошлом с Silverlight, где не каждая API была выставлена, и где был MSCorlib Учитывая права, что ваша заявка не должна была обеспечить систему безопасность.

Вы можете думать, что вы можете использовать какой-то трюк (ссылка на GAC библиотека вместо ссылки на компилятор или использование отражения, чтобы получить к частным API, или p / вызывую в Win32). Но все это использует будет быть пойманным приложением AppStore Review, и вы не сможете Опубликуйте свое приложение через магазин Microsoft.

Вы все еще можете сделать все уродливое взломать, пожалуйста в вашей системе. Это просто Не удастся опубликовать это через AppStore.

Так что есть, возможно, нет официального пути, и если есть неофициальный способ, это, вероятно, не будет принято в App Store.

Просто вообще это имеет смысл: я не хочу загружать кажущиеся законные приложения, просто чтобы он сканировал свой жесткий диск и найдет мою электронную таблицу «Budget.xls», которая включает в себя мою банковскую / кредитную информацию.

Редактировать: можно предоставить временный доступ к защищенным файлам / папкам через сборник файла WinRT, но он должен быть вызван и выбран пользователем.

Вы можете использовать складчатый отплатель. GetFolderfrompathasync Метод для получения

Подобная ситуация.Хотел получить доступ к файлу Chrome Bookmarks в Parse.Пришлось использовать FileOpenPicker изначально, но файл, который он возвращается, может быть «кэшировать» в Future VaucessList (?) Для последующего поиска.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top