Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从WinRT组件项目访问Metro JS项目中的图像文件_Javascript_Windows 8_Windows Runtime_Microsoft Metro_Winrt Component - Fatal编程技术网

Javascript 从WinRT组件项目访问Metro JS项目中的图像文件

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/

我正在开发一个JavaScript metro应用程序,我发现要从JavaScript调用C代码,我必须在解决方案中使用Windows运行时组件项目。现在我需要检查添加到JavaScript metro应用程序“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。在“解决方案资源管理器”窗格下方显示的窗格中,检查“程序包操作”的内容。如果为“无”,则图像不会与包一起复制;它必须是“内容”。