我有数据,想要写入csv文件并将其保存在手机存储中。所以我写了这段代码来保存这个文件。
string csv = Models.CSVHelper.GetCSV<TigerProgram>(item);
var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
"data.csv");
using (var writer = File.CreateText(path))
{
writer.Write(csv);
}
我没有得到任何异常,所以我认为文件是保存的,但我只能在运行时使用我不想要的代码访问。我想保存在外部存储中,在那里我可以获取文件easily.so如何将文件保存在外部存储中?
发布于 2020-03-04 05:59:29
我使用依赖服务从Xamarin.Forms中的Xamarin.android.Created接口获取下载路径,并在Xamarin.Android中实现它,然后解析该接口并获得如下路径
var newPath = Path.Combine(DependencyService.Get<IFileSystem>().GetExternalStorage(),
"data1.txt");
using (var writer = File.CreateText(path))
{
writer.Write(csv);
}
我还需要为mainactivity的onCreate()
中的权限调用此方法,以解决访问被拒绝异常,如下所示
private void CheckAppPermissions()
{
if ((int)Build.VERSION.SdkInt < 23)
{
return;
}
else
{
if (PackageManager.CheckPermission(Manifest.Permission.ReadExternalStorage, PackageName) != Permission.Granted
&& PackageManager.CheckPermission(Manifest.Permission.WriteExternalStorage, PackageName) != Permission.Granted)
{
var permissions = new string[] {
Manifest.Permission.ReadExternalStorage, Manifest.Permission.WriteExternalStorage };
RequestPermissions(permissions, 1);
}
}
}
在onCreate()
中调用,解决权限错误
https://stackoverflow.com/questions/60513927
复制相似问题