为什么文件打不开?

本文关键字:文件 为什么 | 更新日期: 2023-09-27 18:06:59

文件打不开

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");

我不知道为什么它不打开文件。有线索吗?

为什么文件打不开?

由于某些原因,您正在打开一个流并且然后试图为它创建一个写入器。

如果文件之前不存在,那么调用new FileStream(@"c:'xmlout.xml", FileMode.Open)将抛出异常…如果文件之前不存在,那么您将无法在下一行中打开对它的写入器,因为您仍然打开文件以进行读取。然后您也关闭finally块中的FileStream,但从未关闭StreamWriter,这是奇怪的。

我希望你可能已经得到一个异常,显示哪些是真正导致问题的,但你当然应该删除FileStream的语句。

你应该使用using语句,这样你就不需要显式的try/finally块:

using (StreamWriter writer = File.CreateText(@"c:'xml-out.xml"))
{
}

当然有然后可能你没有权限在文件系统的根目录下创建文件…