在Windows应用商店应用中创建“我的图片”中的子文件

时间:2013-03-06 15:00:31

标签: c# windows-runtime windows-store-apps winrt-xaml .net-4.5

我正在尝试从Windows商店应用中的“我的图片”文件夹中创建文件夹结构。但我似乎无法通过第一级。

我使用以下代码创建我的第一级文件夹:

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应用商店。

2 个答案:

答案 0 :(得分: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的值,也需要将其更改为返回{{1} },所以对于方法签名:

Task<T>

你会把它改成

private void MyMethod()

如果您当前的签名是

private async Task MyMethod()

你需要做

private bool MyMethod()

最后在最后一种情况下 - 您还需要更改来自

的来电
private async Task<bool> MyMethod()

var myValue = MyMethod();

等。标记所有使用var myValue = await MyMethod(); 关键字进行调用等待其他方法的方法。

答案 1 :(得分:-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");