进程无法访问文件.NET

本文关键字:文件 NET 访问 进程 | 更新日期: 2023-09-27 18:30:00

我需要读取一个文本文件并将其存储到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
}

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

进程无法访问文件.NET

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

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

您可以尝试:

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

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

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

几毫秒后重试即可。