Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 在外部存储器[Xamarin.Froms]中保存扩展名为CSV的文件_File_Xamarin.forms_Xamarin.android_Export To Csv - Fatal编程技术网

File 在外部存储器[Xamarin.Froms]中保存扩展名为CSV的文件

File 在外部存储器[Xamarin.Froms]中保存扩展名为CSV的文件,file,xamarin.forms,xamarin.android,export-to-csv,File,Xamarin.forms,Xamarin.android,Export To Csv,我有数据,想写入csv文件并保存在手机存储器中。 所以我写了这段代码来保存文件 string csv = Models.CSVHelper.GetCSV<TigerProgram>(item); var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "data.csv"); using (var writer

我有数据,想写入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);
        }
string csv=Models.CSVHelper.GetCSV(项目);
var path=path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
“data.csv”);
使用(var writer=File.CreateText(路径))
{
writer.Write(csv);
}

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

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

var newPath = Path.Combine(DependencyService.Get<IFileSystem>().GetExternalStorage(), 
"data1.txt");
using (var writer = File.CreateText(path))
{
         writer.Write(csv);
}

onCreate()
中调用此函数以解决权限错误

为什么要使用写入一行的
WriteLineAsync
?为什么不直接使用
File.writealText()
?你如何确定它“不起作用”?您是否遇到异常或错误?好的,我使用了该选项,但在存储器中找不到该文件。是否仍要将该文件保存在下载文件夹中?谢谢回复。您必须使用DownloadManager API。您可以使用ADB查找保存在应用程序文件夹中的文件。您可以提供任何链接以供参考吗?这真的会很有帮助。或者上面的代码如何让它工作呢?谷歌提供了使用DownloadManager的示例。正如我刚才解释的,您写入应用程序文件夹的文件可以使用adb查看。您可以将自己标记为解决方案,然后它将帮助其他人。
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);
            }
        }
    }