每隔一段時間,StorageFiles都會被鎖定,並在嘗試覆蓋它們時收到UnauthorizedAccessException。我無法複製這個,它只是隨機發生。這是創建文件的代碼:替換文件在WinRT/Win8中拋出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%的設備上。 –