关闭或删除处于打开模式的文件



我正在通过下面的代码编写CSV文件,

  using(StreamWriter sw = new StreamWriter(AbsolutePathAndFileName))
  {
        //write header line
        int iColCount = TheDataTable.Columns.Count;
        for (int i = 0; i < iColCount; i++)
        {
            sw.Write(TheDataTable.Columns[i]);
            if (i < iColCount - 1)
            {
                sw.Write(separator);
            }
        }
        sw.Write(sw.NewLine);
        //write rows
        foreach (DataRow dr in TheDataTable.Rows)
        {
            for (int i = 0; i < iColCount; i++)
            {
                if (!Convert.IsDBNull(dr[i]))
                {
                    string data = dr[i].ToString();
                    data = data.Replace(""", "\"").Replace(",", " ");
                    sw.Write(data);
                }
                if (i < iColCount - 1)
                {
                    sw.Write(separator);
                }
            }
            sw.Write(sw.NewLine);
        }
        sw.Close();
    }

之后我将打开该文件进行审查。现在,文件处于打开模式。

但是,当我再次生成该文件时,它不允许我,并说该文件正在被另一个进程使用。

这个问题有什么解决办法吗?我需要删除或关闭这个文件

您应该将StreamWriter包装在using语句中,以确保它被处置。

是否在需要时以只读模式打开文件?

using (FileStream f = File.Open("c:\software\code.txt", FileMode.Open, FileAccess.Read, FileShare.None)
{
}

相关内容

  • 没有找到相关文章

最新更新