Язык: HTML | XAML

Краткое руководство: доступ к файлам программными средствами (XAML)

Applies to Windows only

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

Схема: Как эта тема связана с другими? См:

Необходимые условия

Перечисление файлов и папок в расположении

В следующем примере используется метод StorageFolder.GetFilesAsync, чтобы получить все файлы в PicturesLibrary, а затем перечислить имена всех файлов. Далее в примере используется метод GetFoldersAsync, чтобы получить все папки в PicturesLibrary, а затем перечислить имена всех папок.


StorageFolder picturesFolder = KnownFolders.PicturesLibrary;
StringBuilder outputText = new StringBuilder();

IReadOnlyList<StorageFile> fileList = 
    await picturesFolder.GetFilesAsync();

outputText.AppendLine("Files:");
foreach (StorageFile file in fileList)
{
    outputText.Append(file.Name + "\n");
}

IReadOnlyList<StorageFolder> folderList = 
    await picturesFolder.GetFoldersAsync();
           
outputText.AppendLine("Folders:");
foreach (StorageFolder folder in folderList)
{
    outputText.Append(folder.DisplayName + "\n");
}


Примечание  В языках C# и Visual Basic обязательно вставляйте ключевое слово async в объявления всех методов, в которых используется оператор await. Дополнительные сведения см. в разделе Краткое руководство: использование оператора await для асинхронного программирования.

Либо вы можете использовать метод GetItemsAsync, чтобы получить файлы и папки в определенном расположении. В следующем примере используется метод GetItemsAsync, чтобы получить все файлы и папки в PicturesLibrary. Затем в примере перечисляются имена всех файлов и папок. Если элемент является папкой, в примере к имени добавляется "folder".


StorageFolder picturesFolder = KnownFolders.PicturesLibrary;
StringBuilder outputText = new StringBuilder();

IReadOnlyList<IStorageItem> itemsList = 
    await picturesFolder.GetItemsAsync();

foreach (var item in itemsList)
{
    if (item is StorageFolder)
    {
        outputText.Append(item.Name + " folder\n");

    }
    else
    {
        outputText.Append(item.Name + "\n");

    }
}


Запрос файлов в расположении и перечисление соответствующих файлов

Следующий пример получает файлы в PicturesLibrary и группирует их по месяцам. Пример создает объект StorageFolderQueryResult, вызывая метод StorageFolder.CreateFolderQuery и передавая ему значение CommonFolderQuery.GroupByMonth. Затем пример вызывает StorageFolderQueryResult.GetFoldersAsync. Результаты вызова GetFoldersAsync являются виртуальными папками (объектами StorageFolder), основанными на значении CommonFolderQuery, с файлами в PicturesLibrary и вложенных папках, сгруппированными в виртуальные папки.



StorageFolder picturesFolder = KnownFolders.PicturesLibrary;

StorageFolderQueryResult queryResult = 
    picturesFolder.CreateFolderQuery(CommonFolderQuery.GroupByMonth);
           
IReadOnlyList<StorageFolder> folderList = 
    await queryResult.GetFoldersAsync();

StringBuilder outputText = new StringBuilder();

foreach (StorageFolder folder in folderList)
{
    IReadOnlyList<StorageFile> fileList = await folder.GetFilesAsync();

    // Print the month and number of files in this group.
    outputText.AppendLine(folder.Name + " (" + fileList.Count + ")");

    foreach (StorageFile file in fileList)
    {
        // Print the name of the file.
        outputText.AppendLine("   " + file.Name);
    }
}


Примечание  В языках C# и Visual Basic обязательно вставляйте ключевое слово async в объявления всех методов, в которых используется оператор await. Дополнительные сведения см. в разделе Краткое руководство: использование оператора await для асинхронного программирования.

Результат работы программы выглядит примерно так:

February ‎2012 (2)
   MyImage3.png
   MyImage4.png
‎November ‎2011 (2)
   MyImage1.png
   MyImage2.png

Сводка и дальнейшие действия

Сведения о чтении и записи файлов см. в разделах Краткое руководство: чтение и запись файла и Пример доступа к файлу. Сведения о работе с файлами изображений см. в разделе Краткое руководство: изображения и ImageBrush, Краткое руководство: изображения, а также Пример изображения XAML.

Сведения о доступе к файлам с помощью средства выбора файлов см. в разделе Краткое руководство: доступ к файлам через средство выбора файлов.

Связанные разделы

Осуществление доступа к данным и файлам
Краткое руководство: доступ к файлам с помощью средства выбора файлов
Краткое руководство: чтение и запись файла
Доступ к файлам и права доступа
Образец программного поиска файла
Пример перечисления папок
Пример доступа к файлу
Пример использования изображений на XAML
Ссылки
Windows.Storage.KnownFolders class
Windows.Storage.StorageFile class
Windows.Storage.StorageFolder class
Windows.Storage.StorageItemTypes enum
Windows.Storage.Search.CommonFolderQuery enum
Windows.Storage.Search.StorageFolderQueryResult class

 

 

Показ:
© 2014 Microsoft