如何使用 streamwriter 将文件写入桌面

how to write a file to desktop using streamwriter

我有一个块应该将覆盖的文件发送到我的桌面,但代码似乎不起作用,我使用的是 MVC 应用程序而不是控制台应用程序。

任何人都可以告诉我我做错了什么或建议我如何实现我的解决方案。

using (var File = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "~/ColTexOutputFileTest.csv", false)) // true for appending the file and false to overwrite the file
{
    foreach (var item in outputFile)
    {
        File.WriteLine(item);
    }
}

删除“~”字符。

"\ColTexOutputFileTest.csv"

此字符“~”用于查找服务器端文件夹或文件

例如 如果您访问 abc.xml 文件中的 App_Data 文件夹

HttpContext.Current.Server.MapPath("~/App_Data/abc.xml");

如果您在本地访问文件时将文件流式传输为 windows 路径

using (var File = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\ColTexOutputFileTest.csv", false)) // true for appending the file and false to overwrite the file
{
    foreach (var item in outputFile)
    {
        File.WriteLine(item);
    }
}

"~/ColTexOutputFileTest.csv" change it "\ColTexOutputFileTest.csv"

如上面的答案所述,~ 是问题所在。 .Net 提供了 Path class,它有一个合并路径和文件名的方法,不需要知道是否需要分隔符:

using (var File = new StreamWriter(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "ColTexOutputFileTest.csv"), false))

参见:https://msdn.microsoft.com/en-us/library/system.io.path(v=vs.110).aspx