快速入門:以程式設計方式存取檔案
Language: HTML | XAML

快速入門:以程式設計方式存取檔案 (XAML)

[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]

存取位於像是資料夾、媒體櫃、裝置或網路位置等位置中的檔案和資料夾。您也可以建構檔案和資料夾查詢來查詢位置中的檔案和資料夾。

藍圖: 這個主題與其他主題的相關性?請參閱:

先決條件

列舉位置中的檔案和資料夾

下列範例使用 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 中,請務必在您使用 await 運算子的任何方法的方法宣告中放置 async 關鍵字。 如需詳細資訊,請參閱快速入門:在 C# 或 Visual Basic 中呼叫非同步 API
 

或者,您可以使用 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 中的檔案,並按照月份將它們分組。 範例會呼叫 StorageFolder.CreateFolderQuery 並將 CommonFolderQuery.GroupByMonth 值傳遞給方法來建立 StorageFolderQueryResult 物件。 然後範例會呼叫 StorageFolderQueryResult.GetFoldersAsyncGetFoldersAsync 的結果是以 CommonFolderQuery 值為依據的虛擬資料夾 (StorageFolder 物件),而且 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 中,請務必在您使用 await 運算子的任何方法的方法宣告中放置 async 關鍵字。 如需詳細資訊,請參閱快速入門:在 C# 或 Visual Basic 中呼叫非同步 API
 

範例的輸出結果看起來和下面類似。

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

摘要與後續步驟

若要深入了解讀取和寫入檔案,請參閱快速入門:讀取和寫入檔案以及檔案存取範例。若要深入了解使用影像檔案,請參閱快速入門:Image 和 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

 

 

顯示:
© 2016 Microsoft