在我的图片从Windows商店应用程序创建子文件夹

本文关键字:应用程序 创建 文件夹 Windows 我的 | 更新日期: 2023-09-27 18:02:47

我试图从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");

但是我没有一个CreateFolderAsync方法从我的appFolder。

那么,我如何创建那个文件夹然后如何选择它呢?

Thanks in advance

我使用Visual Studio 2012, c# 4.5, XAML,我正在写一个windows商店应用程序。

在我的图片从Windows商店应用程序创建子文件夹

您似乎错过了async/await革命,并假设获取文件夹的操作是文件夹。这应该可以工作:

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

您还需要在方法签名中添加async关键字,无论上述代码位于何处,然后如果您的方法返回T类型的值-将其更改为返回Task<T>,因此对于方法签名:

private void MyMethod()

可以改成

private async Task MyMethod()

如果你的当前签名是

private bool MyMethod()

你需要做

private async Task<bool> MyMethod()

最后,在最后一种情况下,您还需要从

更改调用
var myValue = MyMethod();

var myValue = await MyMethod();

等。用async关键字标记所有调用等待其他方法的方法

在图片库中创建文件夹和子文件夹:

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