在外部存储中保存扩展名为 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()中调用这个来解决权限错误