【发布时间】:2012-09-21 06:52:13
【问题描述】:
每隔一段时间,StorageFiles 就会被锁定,并且在尝试覆盖它们时我会收到 UnauthorizedAccessException。我无法复制它,它只会随机发生。这是创建文件的代码:
using (var stream = new MemoryStream())
{
// ...populate stream with serialized data...
StorageFile file;
Stream fileStream;
try
{
file = await folder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);
}
catch (UnauthorizedAccessException ex)
{
Debug.WriteLine("Access denied on file {0}", fileName);
return;
}
fileStream = await file.OpenStreamForWriteAsync();
using (fileStream)
{
stream.Seek(0, SeekOrigin.Begin);
await stream.CopyToAsync(fileStream);
await fileStream.FlushAsync();
}
}
一旦文件开始抛出 UnauthorizedAccessException,它总是会抛出它。好像系统已锁定文件,我无法触摸它。我必须卸载应用程序并重建。
当我在我的文档中打开文件时,我可以在那里看到该数据。一切安好。写得很成功。
谁能看到我的代码有问题?
【问题讨论】:
-
在我的 Windows 8.1 上的应用中效果相同。替换文件随机失败。
-
这里的情况相同。我在筛选数据时发现的一个想法是,这不会影响每台设备。在我的用户群中,这个错误只发生在 3-5% 的设备上。