该进程无法访问.NET文件

时间:2012-04-05 07:43:47

标签: c# .net

我需要读取文本文件并将其存储到Db中。在多次访问/读取文件后,突然出现此消息

  

该进程无法访问该文件,因为它正由另一个进程使用..

我已经多次检查过,但没有附加其他过程。这是我的代码..

// Storing the data in a data table
DataTable table = new DataTable();

table.Columns.Add(new DataColumn("L_Date", typeof(DateTime)));
table.Columns.Add(new DataColumn("L_Time", typeof(TimeSpan)));
table.Columns.Add(new DataColumn("L_CardID", typeof(string)));
table.Columns.Add(new DataColumn("L_Status", typeof(string)));
table.Columns.Add(new DataColumn("L_Type", typeof(string)));
table.Columns.Add(new DataColumn("L_Catatan", typeof(string)));

int i2 = 0;
string[] content = System.IO.File.ReadAllLines(e.FullPath);

foreach (string line in content)
{
    // some code
}

我的代码人员出了什么问题?

3 个答案:

答案 0 :(得分:0)

使用Process Explorer(可以显示所有具有句柄的文件,即使它们当前未被访问),而不是使用Process Monitor(它监视访问文件时的实时活动)。

去查找/查找句柄或DLL,搜索文件,双击它将选择后面窗口中的句柄,然后您可以右键单击并关闭。

答案 1 :(得分:0)

您可以尝试:

FileStream stream = new FileStream("file.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite); 
StreamReader reader = new StreamReader(stream);

它至少打开由Word锁定的文本文件=)虽然您的问题来源未知,但= \

答案 2 :(得分:0)

在多用户文件系统中,当您调用方法来关闭文件句柄时,您的锁可能无法解锁。

只需几毫秒后重试。