读取 windows8 WinRT组件项目中的一个文件
假设WinRT组件项目的目录结构如下图,现在需要读取pista_454_big.jpg文件:
我在Class1中写一个名为GetFile的方法,其中的代码如下:
StorageFolder installedLocation = Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFolder subfolder1 = await installedLocation.GetFolderAsync("WindowsRuntimeComponent1");
StorageFolder subfolder2 = await subfolder1.GetFolderAsync("Pictures");
StorageFile sampleFile = await installedLocation.GetFileAsync("pista_454_big.jpg");
由于WinRT组件是无法单独运行的,它一定要被另一个Windows Store应用程序调用的。我们可以拿到这个应用程序的安装路径(Windows.ApplicationModel.Package.Current.InstalledLocation)。然后WinRT组件在这个应用程序的安装路径下会有一个以WinRT组件名字命名的文件夹("WindowsRuntimeComponent1"),在这个文件夹下面就能找到WinRT组件项目中的子文件夹了("Pictures")。
当然您还可以使用GetFoldersAsync来列出安装目录下的所有子文件夹。
用URI的方式不行。在Windows Store应用程序里面我们可以用如下代码访问到WinRT组件中的图片(我们假设Windows Store应用程序的solution里面包含了名为WindowsRuntimeComponent1的WinRT组件工程):
Uri pic = newUri(this.BaseUri, "/WindowsRuntimeComponent1/Picture/pista_454_big.jpg");
但是上面这行代码放到WinRT组件里面是不行的。即使类继承了FrameworkElement类,BaseUri的值也是null。
而如果上面这行代码写在Windows Store应用程序里面,BaseUri的值就是应用程序的根目录,然后就能访问到WinRT组件里面的图片了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架