在外部存储中保存扩展名为 CSV 的文件 [Xamarin.Froms]
Saving File with CSV extension In External Storage [Xamarin.Froms]
我有数据,想写入 csv 文件并将其保存在 Phone 存储中。
所以我写了这段代码来保存文件。
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);
}
我没有遇到任何异常,所以我认为文件已保存,但我只能在运行时使用我不想要的代码访问 want.I 想保存在外部存储中,在那里我可以获得文件 easily.so 如何将文件保存到外部存储器?
我使用依赖服务从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()
中调用这个来解决权限错误
我有数据,想写入 csv 文件并将其保存在 Phone 存储中。 所以我写了这段代码来保存文件。
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);
}
我没有遇到任何异常,所以我认为文件已保存,但我只能在运行时使用我不想要的代码访问 want.I 想保存在外部存储中,在那里我可以获得文件 easily.so 如何将文件保存到外部存储器?
我使用依赖服务从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()
中调用这个来解决权限错误