2012-11-29 41 views
0

它不會每次都拋出這個錯誤,那是什麼讓它很奇怪。 我得到了50%的機會。訪問被拒絕。當我嘗試使用Windows 8的XAML CRUD XML文件

這是我如何調用保存方法

private async void btnSave_Click(object sender, RoutedEventArgs e) 
{ 
    await settings.WriteSettings(settings); 
} 

這是方法本身

public async Task WriteSettings(Settings settings) 
{ 
    var ser = new System.Xml.Serialization.XmlSerializer(typeof(Settings)); 
    var writer = new StringWriter(); 
    ser.Serialize(writer, settings); 
    dom.LoadXml(writer.ToString()); 
    StorageFolder sf = ApplicationData.Current.LocalFolder; 
    StorageFile st; 
    st = await sf.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting); // here i get the error 
    await dom.SaveToFileAsync(st); 
} 

我希望你們明白的問題,你能幫助我得到一個解決方案

+0

在這裏你去巨蟹座,檢查了這一點:http://msdn.microsoft.com/en-us/library/bk3w6240%28v=VS.100 %29.aspx –

回答

1

當我嘗試多次訪問文件時,我得到了拒絕Acces的原因。 這是因爲我在使用它之後沒有關閉文件。

這是現在我如何存取權限的文件:

public static async Task WriteSettings(Settings settings) 
    { 
     StorageFile file = await ApplicationData.Current.RoamingFolder.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting); 
     var stream = await file.OpenStreamForWriteAsync(); 

     var ser = new XmlSerializer(typeof(Settings)); 
     ser.Serialize(stream, settings); 

     await stream.FlushAsync(); // This 
     stream.Dispose(); // And this helped me solve my problem 
    } 
相關問題