无权删除/覆盖ApplicationData.Current.LocalFolder子文件夹中的文件

时间:2017-04-23 16:20:58

标签: c# .net uwp

我在我的应用程序中在 ApplicationData.Current.LocalFolder 的专用子文件夹中创建的文件存在问题。我可以使用 ApplicationData.Current.LocalFolder.CreateFolderAsync()创建子文件夹,甚至可以在其中放置文件。但是一旦我尝试覆盖或删除文件,我就会遇到访问冲突异常。 (仍然可以读取访问权限)

Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

我查找了UWP页面,但大多数时候他们只是创建一个新文件夹,就是这样。 我试图覆盖该文件:

public async Task WriteFileAsync(string filename, Stream fileContent)
{
    StorageFolder folder = ApplicationData.Current.LocalFolder;
    var deepFolders = filename.Split('/');
    if (deepFolders != null)
    {
        for (var i=0; i<deepFolders.Length - 1; i++)
        {
            folder = await folder.GetFolderAsync(deepFolders[i]);
        }
        filename = deepFolders[deepFolders.Length - 1];
    }
    try
    {
        StorageFile oldFile = await folder.GetFileAsync(filename);
        await oldFile.DeleteAsync();
    }
    catch (FileNotFoundException) { }

    StorageFile file = await folder.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting);
}

第一次运行正常,但是一旦覆盖应该发生,我就会得到异常。 运行没有子文件夹的整个东西就像魅力一样。 首次读取和删除文件的尝试在删除期间已导致相同的异常。

0 个答案:

没有答案