uwp Как читать файлы в указанном каталоге - PullRequest
0 голосов
/ 31 мая 2018

(c # UWP) Как читать файлы в любом каталоге без использования селекторов файлов?Это мой код:

var t = Task.Run(() => File.ReadAllText(@"D:\chai.log"));

t.Wait ();

Брошенное исключение:

Access to the path 'D:\chai.log' is denied.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

В Windows 10 Build 17093 появилась возможность broadFileSystemAccess, которая позволяет приложениям получать доступ к папкам, к которым у текущего пользователя есть доступ.

Это ограниченная возможность.При первом использовании система предложит пользователю разрешить доступ.Доступ настраивается в Настройки> Конфиденциальность

Файловая система.Если вы отправляете приложение в Магазин, которое объявляет эту возможность, вам нужно будет предоставить дополнительные описания того, почему вашему приложению нужна эта возможность и как оно намеревается ее использовать.Эта возможность работает для API в пространстве имен Windows.Storage


Документация MSDN

broadFileSystemAccess

Windows.Storage

0 голосов
/ 31 мая 2018

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

Чтобы показать диалоговое окно для выбора файлов или папок, введите следующий код:

var picker = new Windows.Storage.Pickers.FileOpenPicker();
picker.FileTypeFilter.Add(".log");

Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();
if (file != null)
{
    // Application now has read/write access to the picked file
}

Чтение Открытие файлов и папок с помощью средства выбора - UWP app developer |Microsoft Docs для получения более подробной информации о FileOpenPicker.


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

Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();

var mru = Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList;
string mruToken = mru.Add(file, "Some log file");

И вы можете перечислить свой mru позже, чтобы получить доступ к файлам или папкам в будущем:

foreach (Windows.Storage.AccessCache.AccessListEntry entry in mru.Entries)
{
    string mruToken = entry.Token;
    string mruMetadata = entry.Metadata;
    Windows.Storage.IStorageItem item = await mru.GetItemAsync(mruToken);
    // The type of item will tell you whether it's a file or a folder.
}

Чтение Отслеживание недавно использованных файлов и папок - приложение UWPразработчик |Документы Microsoft для более подробной информации о MostRecentlyUsedList.

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