我无法打开文件。
private void button1_Click(object sender, EventArgs e)
{
// Load the CSV file
var lines = File.ReadAllLines(@"C:\chat.csv");
var xml = new XElement("Chat-Log", // To convert to XML
lines.Select(line => new XElement("Item",
line.Split('|') // indicate split
.Select((column, index) => new XElement("Column" + index, column)))));
xml.Save(@"C:\xml-out.xml"); // Save to XML file
MessageBox.Show("Converted to XML");
FileStream fileStream = new FileStream(@"c:\xmlout.xml", FileMode.Open);
try
{
TextWriter tw = new StreamWriter("c:\\xml-out.xml");
}
finally
{
fileStream.Close();
}
}
上面的代码应该打开C:\xml-out.xml
,对吗?
TextWriter tw = new StreamWriter("c:\\xml-out.xml");
我不知道它为什么不打开文件。任何线索?
我尝试了various options。
答案 0 :(得分:3)
出于某种原因,您正在打开一个流,然后然后尝试为其创建一个编写器。
如果该文件之前不存在,那么对new FileStream(@"c:\xmlout.xml", FileMode.Open)
的调用将抛出异常...如果文件之前存在,那么您将无法在下一行中打开一个编写器,因为你仍然打开文件进行阅读。您还要关闭FileStream
块中的finally
,但不要关闭StreamWriter
,这是奇怪的。
我希望你可能有一个异常,显示其中哪些实际上导致了问题,但你当然应该删除FileStream
的声明。
您应该使用using
语句,这样您就不需要明确的try
/ finally
块:
using (StreamWriter writer = File.CreateText(@"c:\xml-out.xml"))
{
}
当然然后您可能无权在文件系统的根目录上创建文件...