Xamarin Forms从项目内部的文件夹加载图像

问题描述 投票:0回答:1

我有问题。我正在尝试将图像保存到项目中的文件夹(而不是资源文件夹!),并将该文件夹中的图像作为源加载到图像保持器中。我希望将图像保存在名为TempImages的文件夹中,我的应用程序名称为MyApp。这是我现在拥有的代码:

保存

using (var image = args.Surface.Snapshot())
using (var data = image.Encode(SKEncodedImageFormat.Png, 80))
using (var stream = File.OpenWrite(Path.Combine("MyApp.TempImages", "CreatedImage.png")))
{
    data.SaveTo(stream);
}

开幕

string resourceID = string.Format("MyApp.TempImages.CreatedImage.png");
Assembly assembly = GetType().GetTypeInfo().Assembly;
Stream stream = assembly.GetManifestResourceStream(resourceID);
imgCanvas.Source = ImageSource.FromFile(resourceID);

但是我认为File.OpenWrite我电脑上的本地文件意味着,但我不确定。因此,我不确定是否可以正确打开文件。现在我得到保存路径不存在的错误。

我该如何解决?

c# xamarin xamarin.forms xamarin.android xamarin.ios
1个回答
0
投票

您应该能够在应用程序可写路径之一中创建所需的任何文件夹结构

var path = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);

var folder = Path.Combine(path,"MySpecialFolder");

Directory.CreateDirectory(folder);

var file = Path.Combine(folder,"MyImage.png");

File.WriteAllBytes(file,data);

var image = File.ReadAllBytes(file);
© www.soinside.com 2019 - 2024. All rights reserved.