Javascript 从WinRT组件项目访问Metro JS项目中的图像文件
我正在开发一个JavaScript metro应用程序,我发现要从JavaScript调用C代码,我必须在解决方案中使用Windows运行时组件项目。现在我需要检查添加到JavaScript metro应用程序“images”文件夹中的一些图像,如果它们在那里,我需要将它们复制到应用程序本地文件夹中 首先,我尝试使用这种方法Javascript 从WinRT组件项目访问Metro JS项目中的图像文件,javascript,windows-8,windows-runtime,microsoft-metro,winrt-component,Javascript,Windows 8,Windows Runtime,Microsoft Metro,Winrt Component,我正在开发一个JavaScript metro应用程序,我发现要从JavaScript调用C代码,我必须在解决方案中使用Windows运行时组件项目。现在我需要检查添加到JavaScript metro应用程序“images”文件夹中的一些图像,如果它们在那里,我需要将它们复制到应用程序本地文件夹中 首先,我尝试使用这种方法 Windows.Storage.StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///images/
Windows.Storage.StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///images/logo.png"))
但它抛出了无法找到位置/文件路径的异常
我想这可能是因为project的名称空间不同。该图像添加到JavaScript metro应用程序项目中,我正试图从Windows运行时组件项目中使用它
因此,我尝试为图像文件传递硬编码路径,如“E://projects/myProject/myProject/images/logo.png”,并尝试使用方法
Windows.Storage.StorageFile.GetFileFromPathAsync(<passed the above path>);
Windows.Storage.StorageFile.GetFileFromPathAsync();
但它引发了一个异常,即文件路径的格式不正确
我可以从同一解决方案中的Windows运行时组件项目访问添加到JavaScript metro应用程序项目中的文件吗?并将其复制到应用程序本地文件夹中
谢谢。这应该行得通,我在一个新的JS项目中尝试了您的第一行代码,在C#中使用了一个新的WinRT组件。效果很好。你能在你的组件中展示更多的整个C#类以及调用它的JS代码吗 下面是我测试的.cs代码:
using System;
using Windows.Storage;
namespace Test2
{
public sealed class Class1
{
public async void TestAccess()
{
StorageFile file = await Windows.Storage.StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///images/logo.png"));
}
}
}
以及调用它的JS代码:
var obj = new Test2.Class1();
obj.testAccess();
您是否也确认logo.png文件在您的JS项目中?您好,我可以访问images文件夹,但我有另一个文件夹“www”,其中有一个子文件夹“img”,当我尝试使用Windows.Storage.StorageFile.GetFileFromApplicationUrisync(新Uri(“ms”)访问图像时-appx:///www/img/logo.png")); 它给出了错误。我们可以只访问根文件夹而不访问子文件夹吗?应该不会有问题…使用图像/您已经进入包的子文件夹。一件事:在Visual Studio中,右键单击logo.png并选择Properties。在“解决方案资源管理器”窗格下方显示的窗格中,检查“程序包操作”的内容。如果为“无”,则图像不会与包一起复制;它必须是“内容”。