写入带有名称变量的文本文件

时间:2013-10-06 02:08:05

标签: c# streamwriter

好吧,我的问题是;我正在尝试将文件保存到文件夹中的C:驱动器。现在,我知道如何为常规文件(如

)执行此操作
using(StreamWriter writer = new SteamWriter("c:\\Folder\\TextFile.txt");

我一直在想弄清楚我是如何做到的,以便文本文件的名称被变量替换,所以更像是

using(StreamWriter writer = new SteamWriter("c:\\Folder\\Variablegoeshere.txt");

无论如何我能做到吗?

我为我提出技巧的问题道歉。

2 个答案:

答案 0 :(得分:3)

StreamWriter构造函数与许多其他构造函数和方法调用一样,采用字符串参数。你可以传递任何你喜欢的字符串。在第一个代码示例中,您将向构造函数传递一个“字符串文字” - 一个带有常量值的未命名字符串变量。相反,您可以传递预先构造的标准字符串变量。例如:

string name = // whatever you like
string path = "c:\\Folder\\" + name + ".txt"; // use '+' to combine strings
using (StreamWriter writer = new SteamWriter(path));

当我连接路径组件时,我通常喜欢使用Path.Combine静态方法。帮助我避免丢失或加倍反斜杠的问题:

string path = System.IO.Path.Combine("c:\\Folder", name + ".txt");

最后,使用string verbatim modifier,你可以避免那些丑陋的双反斜杠,否则这是必要的,因为反斜杠是非逐字字符串中的“转义”字符:

string path = System.IO.Path.Combine(@"c:\Folder", name + ".txt");

这是 Microsoft developer reference page for strings in C#。值得一读,更大的C# language reference

答案 1 :(得分:0)

var inputPath = "c:\\Folder\\TextFile.txt";
var folderPath = Path.GetDirectoryName( inputPath );
using ( var writer = new StreamWriter ( Path.Combine( folderPath, "Variablegoeshere.txt" ) )