我在我的应用程序中在 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);
}
第一次运行正常,但是一旦覆盖应该发生,我就会得到异常。 运行没有子文件夹的整个东西就像魅力一样。 首次读取和删除文件的尝试在删除期间已导致相同的异常。