【问题标题】:Saving File with CSV extension In External Storage [Xamarin.Froms]在外部存储中保存具有 CSV 扩展名的文件 [Xamarin.Forms]
【发布时间】:2020-03-05 13:02:27
【问题描述】:

我有数据并想写入 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);
        }

我没有收到任何异常,所以我认为文件已保存,但我只能在运行时使用我不想要的代码访问。我想保存在外部存储中,我可以轻松获取文件。所以我怎么能将文件保存到外部存储中?

【问题讨论】:

  • 你为什么使用写一行的WriteLineAsync?为什么不直接使用File.WriteAllText()?您如何确定它“不起作用”?您是否遇到异常或错误?
  • 好吧,我用过,但我在存储中找不到文件。无论如何要在下载文件夹中保存文件吗?感谢您的回复。
  • 您必须使用 DownloadManager API。您可以使用 ADB 查找保存在应用文件夹中的文件。
  • 您可以提供任何链接以供参考吗?这真的很有帮助。或者上面的代码如何使它工作?
  • google 获取使用 DownloadManager 的示例。正如我刚刚解释的,您写入应用程序文件夹的文件可以使用 adb 查看。

标签: file xamarin.forms xamarin.android export-to-csv


【解决方案1】:

我使用依赖服务从 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()中调用这个来解决权限错误

【讨论】:

  • 您可以将自己标记为解决方案,然后它将对其他人有所帮助。
猜你喜欢
  • 2010-11-15
  • 1970-01-01
  • 1970-01-01
  • 2015-07-08
  • 1970-01-01
  • 2015-10-14
  • 2016-08-01
  • 2021-03-18
  • 1970-01-01
相关资源
最近更新 更多