1 out of 5 rated this helpful - Rate this topic

Quickstart: Accessing files programmatically (Windows Store apps using C#/VB/C++ and XAML)

Applies to Windows only

Access files and folders that are in a location like a folder, library, device, or network location. You can also query the files and folders in a location by constructing file and folder queries.

Roadmap: How does this topic relate to others? See:

Prerequisites

Enumerate files and folders in a location

The following example uses the StorageFolder.GetFilesAsync method to get all the files in the PicturesLibrary and then lists the name of each file. Next, the example uses the GetFoldersAsync method to get all the folders in the PicturesLibrary and then lists the name of each folder.


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");
}


Note  In C# or Visual Basic, remember to put the async keyword in the method declaration of any method in which you use the await operator. For more information, see Quickstart: Using the await operator for asynchronous programming.

Alternatively, you can use the GetItemsAsync method to get both the files and the folders in a particular location. The following example uses the GetItemsAsync method to get all files and folders in the PicturesLibrary. Then the example lists the name of each file or folder. If the item is a folder, the example appends "folder" to the name.


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");

    }
}


Query files in a location and enumerate matching files

The following example gets the files in the PicturesLibrary and groups them by the month. The example creates a StorageFolderQueryResult object by calling StorageFolder.CreateFolderQuery and passing the CommonFolderQuery.GroupByMonth value to the method. Then the example calls StorageFolderQueryResult.GetFoldersAsync. The results of GetFoldersAsync are virtual folders (StorageFolder objects) that are based on the CommonFolderQuery value, with the files in the PicturesLibrary and its sub-folders grouped into the virtual folders.



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);
    }
}


Note  In C# or Visual Basic, remember to put the async keyword in the method declaration of any method in which you use the await operator. For more information, see Quickstart: Using the await operator for asynchronous programming.

The output of the example looks similar to the following.

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

Summary and next steps

To learn about reading and writing files, see Quickstart: Reading and writing a file and the File access sample. To learn about working with image files, see Quickstart: Image and ImageBrush, Quickstart: Imaging, and the XAML image sample.

To learn how to access files through the file picker, see Quickstart: Accessing files with file pickers.

Related topics

Accessing data and files
Quickstart: Accessing files with file pickers
Quickstart: Reading and writing a file
File access and permissions
Programmatic file search sample
Folder enumeration sample
File access sample
XAML image sample
Reference
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

 

 

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.