2012-09-21 28 views
3

每隔一段時間,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,它會一直拋出它。就好像系統鎖定了文件,我無法觸摸它。我必須卸載應用程序並重建。

當我在文檔中打開文件時,我可以在那裏看到數據。一切安好。它被寫入成功。

任何人都可以看到我的代碼有問題嗎?

+1

在我的應用程序在Windows 8.1上的效果相同。替換文件隨機失敗。 –

+0

這裏同樣的情況。我認爲在篩選數據時發現,這並不影響每個設備。在我的用戶羣中,這個錯誤只發生在3-5%的設備上。 –

回答

1

當同一文件是從兩個不同的點在代碼中被訪問,同時這可能是這種情況。

相關問題