我正在使用C#和Xamarin跨平台。我创建了一个新的文件夹“Images”,我添加了一些jpg文件。当我尝试'GetFiles'获取异常,因为它找不到文件夹路径。 我也试着将文件夹放在上面的项目核心上,但仍然是一样的。
string directory = @"~/Images/";
List<Image> HandCards = new List<Image>();
foreach (string myFile in Directory.GetFiles(directory, "*.jpg", SearchOption.AllDirectories))
{
Image image = new Image();
image.Source = FileImageSource.FromFile( myFile);
HandCards.Add(image);
}
更新1
在Nick Kovalsky回答之后我移动文件夹但仍然出现同样的错误。
答案 0 :(得分:0)
查看您的代码,您正在从共享代码解析共享库资源,同时在本机安卓库中拥有图像。 最好将em移动到共享库:https://forums.xamarin.com/discussion/17854/shared-images-in-shared-project
修改强>
在启动时构建所有图像的列表:
var assembly = typeof(App).GetTypeInfo().Assembly;
var ImagesFiles = new List<string>();
foreach (var res in assembly.GetManifestResourceNames())
{
if (res.Contains(".jpg"))
{
ImagesFiles.Add(res);
}
}
在运行时设置图像,首先在init设置全局变量AssemblyName
:
var assembly = typeof(App).GetTypeInfo().Assembly;
AssemblyName = assembly.GetName().Name;
然后您可以按名称加载图片:
public static ImageSource ImageFromResources(string subfolder, string filename)
{
var generatedFilename = AssemblyName + $".Images.{subfolder}.{filename}";
return ImageSource.FromResource(generatedFilename);
}