跨平台无法找到自定义文件夹路径

时间:2018-06-14 15:32:29

标签: c# android xamarin.forms directory

我正在使用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);
            }

enter image description here enter image description here

更新1

在Nick Kovalsky回答之后我移动文件夹但仍然出现同样的错误。

enter image description here

1 个答案:

答案 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);
    }