【问题标题】:WinRT RemovableDevices: Music folder: Cannot create items within this StorageFolderWinRT RemovableDevices:音乐文件夹:无法在此 StorageFolder 中创建项目
【发布时间】:2014-12-18 14:05:51
【问题描述】:

我正在尝试使用 WinRT 将我的音乐收藏从 NAS 系统同步到我的 Windows Phone 设备。 要在手机的 Music 文件夹中创建一个文件夹,我使用以下 sn-p:

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

我希望得到在 Phone\Music 中创建的新文件夹“Test”。但是会抛出以下异常:

System.AggregateException:发生一个或多个错误。 ---> System.Runtime.InteropServices.COMException:未指定的错误不能 在此 StorageFolder 中创建项目。如果遇到这种情况 该文件夹是通过使用分组选项创建查询获得的。
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)

当我在 Phone\Music 中手动创建一个文件夹,然后使用 sn-p 在该文件夹中创建一个子目录时,操作成功(因此没有缺少 WinRT 代理清单问题)。

有没有人也遇到过同样的问题?我在这里做错了什么?

提前致以最诚挚的问候和感谢

-西蒙

【问题讨论】:

    标签: c# windows-runtime storage removable


    【解决方案1】:

    据我所知,Windows API 不允许您通过“完整路径”来创建文件夹,例如。 "create\all\these\subfolders\for\me" (一个 "mkdir -p" linux 等效项)。

    要使您的代码 sn-p 工作,您需要首先获取代表“电话/音乐”子文件夹的 StorageFolder,然后从那里创建文件夹,例如:

    StorageFolder DeviceFolder = ( await KnownFolders.RemovableDevices.GetFoldersAsync() ).FirstOrDefault( a => a.Name == "zeroskyx-lumia" );
    StorageFolder PhoneMusicFolder = await DeviceFolder.GetFolderAsync( @"Phone\Music" );
    await PhoneMusicFolder.CreateFolderAsync( "Test" );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多