首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将扩展名为CSV的文件保存到外部存储器[Xamarin.Froms]

将扩展名为CSV的文件保存到外部存储器[Xamarin.Froms]
EN

Stack Overflow用户
提问于 2020-03-04 03:02:02
回答 1查看 879关注 0票数 0

我有数据,想要写入csv文件并将其保存在手机存储中。所以我写了这段代码来保存这个文件。

代码语言:javascript
运行
复制
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如何将文件保存在外部存储中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-04 05:59:29

我使用依赖服务从Xamarin.Forms中的Xamarin.android.Created接口获取下载路径,并在Xamarin.Android中实现它,然后解析该接口并获得如下路径

代码语言:javascript
运行
复制
var newPath = Path.Combine(DependencyService.Get<IFileSystem>().GetExternalStorage(), 
"data1.txt");
using (var writer = File.CreateText(path))
{
         writer.Write(csv);
}

我还需要为mainactivity的onCreate()中的权限调用此方法,以解决访问被拒绝异常,如下所示

代码语言:javascript
运行
复制
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()中调用,解决权限错误

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60513927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档