我正在尝试编写一个非常简单的程序,它在启动时读取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始终都能正常工作 .