C# 如何从Xamarin中的android项目访问文件
我在Xamarin的android项目中有两个文件,我想访问它们并将其转换为字节数组。比如:C# 如何从Xamarin中的android项目访问文件,c#,arrays,xamarin.android,C#,Arrays,Xamarin.android,我在Xamarin的android项目中有两个文件,我想访问它们并将其转换为字节数组。比如: byte[]fileInBytes=File.ReadAllBytes(Path.Combine(“Models”,“myFile.dat”) 但到目前为止,我还无法用我尝试过的方法访问它们。我尝试使用assembly.GetName().Name+“+”Models.myFile.dat“访问它们,但没有成功。我在Assets文件夹中找到了很多关于如何读取文件的示例,但我不需要读取,我需要以字节形式
byte[]fileInBytes=File.ReadAllBytes(Path.Combine(“Models”,“myFile.dat”)代码>
但到目前为止,我还无法用我尝试过的方法访问它们。我尝试使用assembly.GetName().Name+“+”Models.myFile.dat“
访问它们,但没有成功。我在Assets文件夹中找到了很多关于如何读取文件的示例,但我不需要读取,我需要以字节形式读取文件
目前,文件构建操作设置为“嵌入式资源”,但我不知道这是否正确。请提供帮助。在清单文件中添加读取权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
并且每一次都将设置为有效。在清单文件中添加读取权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
这一切都将开始起作用
如何从Xamarin中的android项目访问文件
您应该将您的myFile.dat
文件放入文件夹,如文件所述:
资产提供了一种在应用程序中包含任意文件(如文本、xml、字体、音乐和视频)的方法。如果您试图将这些文件作为“资源”包含,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();
}
}
如何从Xamarin中的android项目访问文件
您应该将您的myFile.dat
文件放入文件夹,如文件所述:
资产提供了一种在应用程序中包含任意文件(如文本、xml、字体、音乐和视频)的方法。如果您试图将这些文件作为“资源”包含,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();
}
}
解决方案运行良好。我唯一要做的另一件事是将两个文件的构建操作设置为“AndroidAsset”。解决方案运行良好。我唯一要做的另一件事是将两个文件的构建操作设置为“AndroidAsset”