【问题标题】:How to save a CSV file using FolderPicker如何使用 FolderPicker 保存 CSV 文件
【发布时间】:2016-09-25 05:49:24
【问题描述】:

我在保存 csv 文件时遇到了这个问题。

private async void btnPrint_Click(object sender, RoutedEventArgs e)
{
    var picker = new Windows.Storage.Pickers.FolderPicker();
    picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.Desktop;
    picker.FileTypeFilter.Add(".csv");//add any extension to avoid exception

    var folder = await picker.PickSingleFolderAsync();

    if (folder != null)
    {
        string strFilename = strBeginDate + "_To_" + EndDate + ".csv";

        StorageFile file = await folder.CreateFileAsync("Rpt" + strFilename, CreationCollisionOption.ReplaceExisting);

        foreach (var m in FlightData)
        {
            sb.Append(m.Id + "," + m.Date + "," + m.Price + "," + ...... + "\r\n");
        }

        await FileIO.AppendLinesAsync(file, new List<string>() { sb.ToString() });
    }
}

以上原因错误:

"文件名、目录名或卷标语法是 不正确。\r\n"

我用这个没问题。

StorageFile file = await folder.CreateFileAsync("sample.csv", CreationCollisionOption.ReplaceExisting);

【问题讨论】:

    标签: c# uwp uwp-xaml


    【解决方案1】:

    由于您在文件名中使用日期,因此您很可能使用 /,例如2015/01/01。这是一个无效的文件名字符,请将 / 替换为 - 或将其完全删除,您的代码将正常工作。

    我在 GitHub 上放置了一个 small repro project 来向您展示错误并进行修复。

    【讨论】:

    • 你是对的。我使用非法字符作为文件名。希望这对其他人也有帮助。 10Q
    猜你喜欢
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    • 2012-11-09
    相关资源
    最近更新 更多