如何从Xamarin中的android项目访问文件

时间:2017-11-02 16:27:08

标签: c# arrays xamarin.android

我在Xamarin的android项目中有两个文件,我想访问它并变成一个字节数组。就像是: byte[] fileInBytes = File.ReadAllBytes(Path.Combine("Models", "myFile.dat"));

The two files that I would like at access

但是到目前为止我还没能用我尝试过的方法访问它们。我尝试使用assembly.GetName().Name + "." + "Models.myFile.dat")访问它们但没有运气。我发现了很多关于如何从Assets文件夹中读取文件的示例,但我不需要读取,我需要将文件作为字节。

目前,文件构建操作设置为“嵌入式资源”,但我不知道这是否正确。请帮忙。

2 个答案:

答案 0 :(得分:4)

  

如何从Xamarin中的android项目访问文件

您应该将myFile.dat文件放入Assets文件夹,正如文件所述:

  

资产提供了一种在应用程序中包含文本,xml,字体,音乐和视频等任意文件的方法。如果您尝试将这些文件包含为" resources",Android会将它们处理到其资源系统中,您将无法获取原始数据。如果您想要访问未经修改的数据,资产是一种方法。

当你需要从文件中获取字节时:

AssetManager assets = this.Assets;
using (StreamReader sr = new StreamReader(assets.Open("myFile.dat")))
{
     byte[] bytes = default(byte[]);
     using (var memstream = new MemoryStream())
     {
         sr.BaseStream.CopyTo(memstream);
         bytes = memstream.ToArray();
     }
}

答案 1 :(得分:0)

在清单文件中添加读取权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

并且每一个都将开始工作。