【发布时间】:2015-10-05 12:26:48
【问题描述】:
我正在编写一个 Windows Phone 8.1 (WINRT XAML) 应用程序。
在方法 1 中,我打开一个 StorageFile,在方法 2 中,我在同一个文件上写入。但它在写入文件时显示错误。
- 打开并读取内容后如何关闭此文件?
-
那么在方法2中写入后如何再次关闭该文件?
private async Task<bool> Method1(int workOutID) { string filename = "WorkoutOfflineDataFile.txt"; StorageFolder LocalStorageFolderObject = ApplicationData.Current.LocalFolder; StorageFile StorageFileObject = await LocalStorageFolderObject.CreateFileAsync(filename, CreationCollisionOption.OpenIfExists); string JSONFromFile = await FileIO.ReadTextAsync(StorageFileObject); } private async void Method2() { string filename = "WorkoutOfflineDataFile.txt"; StorageFolder LocalStorageFolderObject = ApplicationData.Current.LocalFolder; StorageFile StorageFileObject = await LocalStorageFolderObject.CreateFileAsync(filename, CreationCollisionOption.OpenIfExists); await FileIO.WriteTextAsync(StorageFileObject, JSonData_ToSave); }
错误:
抛出异常:'System.UnauthorizedAccessException' in mscorlib.ni.dll
附加信息:访问被拒绝。 (HRESULT 的例外情况: 0x80070005 (E_ACCESSDENIED))
【问题讨论】:
-
请将您的代码粘贴到代码块中。现在它不可读。
-
@Festyk,请立即查看
-
你是怎么调用这些方法的?
-
@Kristian Vukusic,Page.Loaded 执行方法1,然后当所有任务完成后,执行方法2
-
Method2 不是一个任务,所以如果你从代码中触发它并等待它,程序将不会等待完成它。
标签: c# .net windows-runtime windows-phone-8.1 windows-phone