0

Windowsストアアプリからマイピクチャーフォルダー内にフォルダー構造を作成しようとしています。しかし、私は最初のレベルを通過することができないようです。

次のコードを使用して、第1レベルのフォルダーを作成します。

IAsyncOperation<StorageFolder> appFolder = Windows.Storage.KnownFolders.PicturesLibrary.GetFolderAsync("AppPhotos");

if (appFolder==null)
{
    //Create folder
    appFolder = Windows.Storage.KnownFolders.PicturesLibrary.CreateFolderAsync("AppPhotos");
}

次に、この呼び出しLevel1の下に別のフォルダーを作成します。

私は次のことができると期待していました:

appFolder.CreateFolderAsync("Level1");

しかし、appFolderのCreateFolderAsyncメソッドがありません。

では、どうすればそのフォルダを作成でき、次にどのようにそれを選択できますか?

前もって感謝します

Visual Studio 2012、C#4.5、XAMLを使用しており、Windowsストアアプリを作成しています。

4

2 に答える 2

7

あなたはそこで非同期/待機革命を逃したようで、フォルダを取得する操作はフォルダであると想定しています。これは機能するはずです:

var appFolder = await Windows.Storage.KnownFolders.PicturesLibrary.GetFolderAsync("AppPhotos");

if (appFolder == null)
{
    //Create folder
    appFolder = await Windows.Storage.KnownFolders.PicturesLibrary.CreateFolderAsync("AppPhotos");
}

asyncまた、上記のコードが配置されている場所であればどこでも、メソッドシグネチャにキーワードを追加する必要があります。また、メソッドがタイプの値を返す場合は、TそれをreturnTask<T>に変更します。したがって、メソッドシグネチャの場合は次のようになります。

private void MyMethod()

あなたはそれをに変更します

private async Task MyMethod()

現在の署名が

private bool MyMethod()

あなたがする必要があるでしょう

private async Task<bool> MyMethod()

最後にその最後のケースでは-あなたはまたからあなたの呼び出しを変更する必要があります

var myValue = MyMethod();

var myValue = await MyMethod();

asyncなど、キーワードで他のメソッドを待機する呼び出しを行うすべてのメソッドをマークします。

于 2013-03-06T22:24:19.317 に答える
-1

画像ライブラリにフォルダとサブフォルダを作成するには:

  StorageFolder appFolder;
  try
    {
       appFolder = await  Windows.Storage.KnownFolders.PicturesLibrary.GetFolderAsync("AppPhotos");

    }
  catch (Exception ex)
    {

      appFolder = null;

     }
 if (appFolder == null)
   {

   //Create folder
    appFolder = await Windows.Storage.KnownFolders.PicturesLibrary.CreateFolderAsync("AppPhotos");

    }

    //Create sub-folder
   await appFolder.CreateFolderAsync("level1");
于 2015-04-22T06:08:07.030 に答える