无法在Windows应用商店应用中的RoamingFolder下创建子文件夹

时间:2014-03-07 18:59:25

标签: c# windows-8 windows-runtime

我正在编写Windows 8.1商店应用程序,并尝试在ApplicationData.Current.RoamingFolder目录中创建一个子文件夹。目前没有存储数据。但是,以下行抛出System.UnauthorizedAccessException,说“访问被拒绝”。

var folder = await ApplicationData.Current.RoamingFolder.CreateFolderAsync("subfolder", CreationCollisionOption.OpenIfExists);

奇怪的是,如果我使用LocalFolder而不是RoamingFolder,则操作会成功。

var folder = await ApplicationData.Current.LocalFolder.CreateFolderAsync("subfolder", CreationCollisionOption.OpenIfExists);

为什么我无法在漫游文件夹中创建子文件夹?我可以通过Windows资源管理器手动创建文件夹。

文档(link)表示文件夹中的内容存在限制,具体为:

“同步引擎限制了您必须遵循的文件名约定,以确保漫游文件夹中的项目可以漫游。请确保您的文件和文件夹名称不包含前导空格。同步引擎可能会限制总数可以漫游的设置和文件的大小。“

但是,我没有看到任何可以解释上述异常的内容。我错过了什么以及我对漫游文件夹有什么其他限制?

有趣的是,如果我创建一个全新的应用程序,两行代码都能完美运行。我不知道为什么会这样。

编辑:如Nate所述,CreateFolderAsync documentation说“如果您尝试在库或文件组等虚拟文件夹中创建子文件夹,则此方法可能会失败。”有谁知道这是否适用于此?如果是的话,它会引入什么限制?我在此问题上找到的唯一信息是this question,但它似乎没有坚定地解决问题。

0 个答案:

没有答案