在我的图片从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商店应用程序。
您似乎错过了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");