言語: HTML | XAML

クイック スタート: プログラムによるファイルへのアクセス (XAML)

フォルダー、ライブラリ、デバイス、ネットワークの場所などの場所にあるファイルとフォルダーにアクセスします。ファイルやフォルダーのクエリを作成することで、ある場所にあるファイルやフォルダーのクエリを実行することもできます。

ロードマップ: このトピックと他のトピックとの関連については、以下をご覧ください。

必要条件

ある場所のファイルやフォルダーを列挙する

次の例では、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.GetFoldersAsync を呼び出します。GetFoldersAsync を呼び出すと、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

 

 

表示:
© 2015 Microsoft