WinRT 可移动设备:音乐文件夹:无法在此存储文件夹中创建项目
本文关键字:文件夹 存储 项目 存储文件 创建 可移动 音乐 WinRT | 更新日期: 2023-09-27 18:34:45
我正在尝试使用 WinRT 将我的音乐收藏从 NAS 系统同步到我的 Windows Phone 设备。要在手机上的音乐文件夹中创建一个文件夹,我使用以下代码片段:
StorageFolder DeviceFolder = ( await KnownFolders.RemovableDevices.GetFoldersAsync() ).FirstOrDefault( a => a.Name == "zeroskyx-lumia" );
StorageFolder PhoneMusicFolder = await DeviceFolder.GetFolderAsync( @"Phone'Music" );
await DeviceFolder.CreateFolderAsync( @"Phone'Music'Test" );
我希望在电话''音乐中创建新文件夹"测试"。但是,将引发以下异常:
System.AggregateException:发生一个或多个错误。 ---> System.Runtime.InteropServices.COMException:未指定的错误无法 在此存储文件夹中创建项目。如果出现以下情况,则可能会遇到此问题 该文件夹是通过使用分组选项创建查询来获取的。
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task 任务(在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task 任务(
当我手动在 Phone''Music 中创建文件夹,然后使用该代码片段在该文件夹中创建子目录时,操作成功(因此没有缺少 WinRT 代理清单问题(。
有没有人也遇到过同样的问题?我在这里做错了什么?
提前致以最诚挚的问候和感谢
-西蒙
据我所知,Windows API 不允许您发布通过"完整路径"的文件夹创建,例如。"create''all''these''subfolder''for''me"(相当于"mkdir -p"Linux(。
要使代码片段正常工作,您需要首先获取表示"电话/音乐"子文件夹的 StorageFolder,并从那里发出文件夹创建,例如:
StorageFolder DeviceFolder = ( await KnownFolders.RemovableDevices.GetFoldersAsync() ).FirstOrDefault( a => a.Name == "zeroskyx-lumia" );
StorageFolder PhoneMusicFolder = await DeviceFolder.GetFolderAsync( @"Phone'Music" );
await PhoneMusicFolder.CreateFolderAsync( "Test" );