Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从Xamarin中的android项目访问文件_C#_Arrays_Xamarin.android - Fatal编程技术网

C# 如何从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文件夹中找到了很多关于如何读取文件的示例,但我不需要读取,我需要以字节形式

我在Xamarin的android项目中有两个文件,我想访问它们并将其转换为字节数组。比如:
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”