我在Xamarin的android项目中有两个文件,我想访问它并变成一个字节数组。就像是:
byte[] fileInBytes = File.ReadAllBytes(Path.Combine("Models", "myFile.dat"));
但是到目前为止我还没能用我尝试过的方法访问它们。我尝试使用assembly.GetName().Name + "." + "Models.myFile.dat")
访问它们但没有运气。我发现了很多关于如何从Assets文件夹中读取文件的示例,但我不需要读取,我需要将文件作为字节。
目前,文件构建操作设置为“嵌入式资源”,但我不知道这是否正确。请帮忙。
答案 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" />
并且每一个都将开始工作。