C# C Streamwriter帮助
嘿,伙计们,我需要一点帮助。我需要我的streamwriter将从目录.Getfiles调用中获得的文件名更正出来C# C Streamwriter帮助,c#,C#,嘿,伙计们,我需要一点帮助。我需要我的streamwriter将从目录.Getfiles调用中获得的文件名更正出来 string lines = (listBox1.Items.ToString()); string sourcefolder1 = textBox1.Text; string destinationfolder = (@"C:\annqcfiles"); string[] files = Directory.GetFiles(sou
string lines = (listBox1.Items.ToString());
string sourcefolder1 = textBox1.Text;
string destinationfolder = (@"C:\annqcfiles");
string[] files = Directory.GetFiles(sourcefolder1, lines + "*.ann");
foreach (string listBoxItem in listBox1.Items)
{
Directory.GetFiles(sourcefolder1, listBoxItem + "*.txt");
StreamWriter output = new StreamWriter(destinationfolder + "\\" + listBoxItem + ".txt");
}
它完美地创建了文件,只是没有向文件添加任何内容。我真正想要的是它在getfiles结果中找到的文件的文件名
感谢您的建议。您必须关闭StreamWriter
或者将StreamWriter包装在语句中,这将自动处理并关闭流。
这背后的原因是,流将把输出保存在缓冲区中,并且仅在以下情况下将其写入文件:
-达到某个阈值
-你可以显式地调用flush
-关闭或处理流因为GetFiles返回字符串[],所以根本不使用StreamWriter—只需
其中files是要写入的路径的字符串[],path是目标文件。您应该将streamwriter包装在using语句中,这将刷新并关闭streamwriter
foreach (string listBoxItem in listBox1.Items)
{
using (StreamWriter output = new StreamWriter(destinationfolder + "\\" + listBoxItem + ".txt"))
{
foreach (string fileName in Directory.GetFiles(sourcefolder1, listBoxItem + "*.txt"))
{
output.WriteLine(fileName);
}
}
}
using(StreamWriter output = new StreamWriter(destinationfolder + "\\" + listBoxItem + ".txt"))
{
//Any code that writes in output
}
两件事。首先,您实际上需要将数据写入StreamWriter,其次,您需要确保关闭StreamWriter,以便它实际刷新到文件中 试试这个:
foreach (string listBoxItem in listBox1.Items)
{
String[] filesInFolder Directory.GetFiles(sourcefolder1, listBoxItem + "*.txt");
using(StreamWriter output = new StreamWriter(destinationfolder + "\\" + listBoxItem + ".txt"))
{
foreach(string filename in filesInFolder)
{
output.Write(filename);
}
}
}
using语句确保当执行从using块传出时关闭StreamWriter
或者,如果这是您正在写入文件的全部内容,您可以查看该方法。+1供使用。我不明白为什么在更多的例子中,更多的人没有使用这一点。我知道我不是C专业人士,但这似乎是一个不忘记关闭和处理东西的好方法。Tester101,int文件。writealxxx使用内置的这将是完美的,除了我只想要文件名当我将结果写入文本文件时,它有完整的路径+文件名,我只想要文件名这是完美的,但是如何从字符串路径中删除文件路径
foreach (string listBoxItem in listBox1.Items)
{
String[] filesInFolder Directory.GetFiles(sourcefolder1, listBoxItem + "*.txt");
using(StreamWriter output = new StreamWriter(destinationfolder + "\\" + listBoxItem + ".txt"))
{
foreach(string filename in filesInFolder)
{
output.Write(filename);
}
}
}