Xamarin c#CSV在Android目录中创建但未写入

时间:2017-08-04 02:44:55

标签: c# android sqlite csv xamarin

我目前正在创建一个CSV文件并尝试将SQLite数据库的内容写入其中。不幸的是,我一直收到“路径上的共享冲突”错误。它在我尝试WriteAllText的行上出错。

以下是我目前的代码:

var fileName = Android.OS.Environment.ExternalStorageDirectory + Java.IO.File.Separator + "pullList" + pullMonth + ".csv";

using (var fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None))
{
    //Write your file here
    //fs.WriteLine("Hello");
    foreach (var listing in allTables)
    {
        File.WriteAllText(Path.Combine(fileName), string.Format("{0}," + System.Environment.NewLine, listing.ComicTitle));
    }
}

1 个答案:

答案 0 :(得分:1)

您正在创建一个流,但不使用它来编写。由于流正在使用FileShare.None创建文件,因此当您尝试使用其他文件句柄进行写入时,会抛出共享异常

试试这个

var filename = Path.Combine(Android.OS.Environment.ExternalStorageDirectory, "pullList" + pullMonth + ".csv");

StringBuilder s = new StringBuilder();

// build the data in memory
foreach (var listing in allTables)
{
    s = s.AppendLine(listing.ComicTitle);
}

// write the data all at once
File.WriteAllText(path,s);