我正在尝试编写一个非常简单的程序,它在启动时读取txt文件 . 该文件位于“ApplicationData.Current.LocalFolder”中,因为它应该是我可以在不明确告知用户的情况下访问的内容 . 但是,在我尝试检查是否存在和创建文件之后,我在第二个方法的第二行的'file.OpenStreamForReadAsync()'处收到访问被拒绝的异常 .
StorageFile对象从检查过程传递,因此我认为我能够避免两个对象尝试打开同一文件的情况 . 但问题仍然存在 .
public async Task<StorageFile> checkConfig()
{
StorageFolder localFolder = ApplicationData.Current.LocalFolder;
if (await localFolder.TryGetItemAsync("ifthen.txt") != null)
return await localFolder.GetFileAsync("ifthen.txt");
else
return await localFolder.CreateFileAsync("ifthen.txt");
}
public async void load()
{
Windows.Storage.StorageFile file = await checkConfig();
using (var input = await file.OpenStreamForReadAsync())
using (var dataReader = new StreamReader(input))
{
...
}
}
此外,问题仅发生在Release Build中 . 无论启动程序之前文件是否存在,Debug Build始终都能正常工作 .