我正在通过下面的代码编写一个 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)
{
}
关于c# - 关闭或删除处于打开模式的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14272414/