首页 > 解决方案 > 在存储中找不到二进制文件

问题描述

我正在尝试访问和读取我的项目中的二进制文件,但我不断收到以下错误:

该系统找不到指定的文件。(来自 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"));

但是他们俩都返回了相同的错误。有任何想法吗?

标签: c#uwpstoragefile

解决方案


问题是你得到的文件路径错误。您可以使用“ms-appdata:///local/”协议访问本地应用程序数据存储中的文件。例如:

ms-appdata:///local/myBinaryFile

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

使用ms-appx URI 方案来引用来自应用程序包的文件。你也可以使用InstalledLocationAPI。

有关更多详细信息,您可以参考URI 方案


推荐阅读