Загрузка файла изображения в приложении WP 8 из каталога
Я разрабатываю приложение WP 8 и хочу загрузить образ, который в данный момент находится на моем компьютере. Вот мой код
try
{
using (FileStream fileStream = File.OpenRead("\\TiltFilter\\FilterEffects\\Assets\\AlignmentGrid.png"))
{
MemoryStream memStream = new MemoryStream();
memStream.SetLength(fileStream.Length);
fileStream.Read(memStream.GetBuffer(), 0, (int)fileStream.Length);
}
}
catch (Exception e)
{
string str = e.Message;
}
Это дает мне исключение, что типа
System.Io.DirectoryNotFoundexception
and the message is
Не удалось найти часть пути 'C:\TiltFilter\FilterEffects\Assets\AlignmentGrid.png'.
Может ли какое-то тело помочь мне, как я могу загрузить изображение в памяти потока на WP8
Спасибо
3 ответа
Вам нужно добавить изображение в ваш проект как Content
и использовать GetResourceStream
чтобы получить доступ к потоку изображения:
var resource = App.GetResourceStream(new Uri("Assets/AlignmentGrid.png", UriKind.Relative));
var buffer = new byte[resource.Stream.Length];
resource.Stream.Read(buffer, 0, buffer.Length);
Телефон не понимает сетевых путей UNC - он не поддерживает протокол SMB, который используют файловые серверы Windows.
Вам нужно будет либо упаковать файл, чтобы он был частью пакета приложения (файл.xap) и был локальным для телефона, либо обслуживать ресурсы с помощью веб-сервера (то есть с использованием протокола http://).
Первый вариант, очевидно, самый надежный, так как не требует, чтобы телефон имел сетевое подключение к вашему серверу.
Пример того, как это сделать, см. В этом сообщении в блоге о разнице между упаковкой файлов "Содержимое" и "Ресурс" (в нем упоминаются файлы XML, но концепции одинаковы для любого типа файлов).
Приложение Windows Phone может получить доступ только к собственному изолированному хранилищу и SD-карте.
http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff402541%28v=vs.105%29.aspx
Если вы хотите обмениваться файлами между ПК и телефоном, вы можете использовать веб-сервис.