Доступ к файлу изображения в проекте Metro JS из проекта компонента WinRT

Я работаю над метро-приложением JavaScript и обнаружил, что для вызова кода C# из JavaScript мне нужно использовать проект компонента среды выполнения Windows в своем решении. Теперь мне нужно проверить некоторые изображения, которые добавляются в приложение метро JavaScript в папке "images", и если они есть, мне нужно скопировать их в локальную папку приложения.

Сначала я попробовал использовать метод

Windows.Storage.StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///images/logo.png"))

но выдает исключение, которое не может найти путь к файлу / местоположению.

Я думал, что это может быть потому, что пространства имен проекта разные. Изображение добавлено в проект приложения JavaScript metro, и я пытаюсь использовать его из проекта компонента среды выполнения Windows.

Поэтому я попытался передать жестко закодированный путь к файлу изображения, например "E://projects/myProject/myProject/images/logo.png", и попытался с помощью метода

Windows.Storage.StorageFile.GetFileFromPathAsync(<passed the above path>); 

но он выдает исключение, что путь к файлу неверный формат.

Могу ли я получить доступ к файлу, добавленному в проект приложения метрополитена JavaScript из проекта компонента среды выполнения Windows, в том же решении? И скопировать его в локальную папку приложения?

Благодарю.

1 ответ

Решение

Это должно работать, и я попробовал вашу первую строку кода в новом проекте JS с новым компонентом WinRT в C#. Работало просто отлично. Можете ли вы показать больше всего класса 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?

Другие вопросы по тегам