在存储中找不到二进制文件

时间:2018-11-27 21:32:36

标签: c# uwp storagefile

我正在尝试访问和读取项目中的二进制文件,但始终出现以下错误:

  

系统找不到指定的文件。 (来自HRESULT的异常:   0x80070002)

我首先尝试这样访问它:

StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync("myBinaryFile");
                Stream stream = (await file.OpenReadAsync()).AsStreamForRead();
                BinaryReader brFile = new BinaryReader(stream);

然后我尝试使用它代替它来访问它:

StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(new Uri(@"ms-appx:///myBinaryFile"));

但是他们两个都返回了相同的错误。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

问题是您获取的文件路径错误。您可以使用“ ms-appdata:/// local /”协议访问l ocal应用数据商店中的文件。例如:

ms-appdata:///local/myBinaryFile

您还可以使用ApplicationData.Current.LocalFolder API来获取文件,请确保文件已存储在本地文件夹中。文件夹路径看起来像 C:\Users\Account\AppData\Local\Packages\3e8cf79a-4746-457c-8f51-73809c7876fa_75cr2b68xxxx\LocalState

使用ms-appx URI方案来引用来自您的应用程序包的文件。并且您还可以使用InstalledLocation API。

有关更多详细信息,请参考URI schemes