在Xamarin.Forms中处理项目,并使用PCLStorage进行文件访问。 (NuGet安装在每个项目中 - PCL,Droid和UWP)。
代码段:
using PCLStorage;
using System.Threading.Tasks;
IFolder root = FileSystem.Current.LocalStorage;
IFile outf = await root.CreateFileAsync("TEST.TXT", CreationCollisionOption.ReplaceExisting);
await outf.WriteAllTextAsync("SOME TEXT");
// Here it throws an exception
if (ExistenceCheckResult.FileExists == await root.CheckExistsAsync("TEST.TXT") )
Debug.WriteLine("File TEST.TXT exists");
else
Debug.WriteLine("File TEST.TXT NOT found");
每当我尝试执行此操作时(在UWP项目中),我正在使用消息
来处理未处理的异常Value does not fall within the expected range.
0x80070057
CreateFileAsync实际上创建了一个文件,WriteAllTextAsync写入文件,然后,CheckExistsAsync抛出异常。
现在,当我在调试器中逐步执行它时,大多数当时它工作正常,但有时它会引发异常,这导致我相信它与异步/线程有关...
让我感到困惑,完全相同的代码在Android上运行得非常糟糕。 昨天花了整整一天试图搞清楚。有什么想法吗?