我需要读取文本文件并将其存储到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
}
我的代码人员出了什么问题?
答案 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)
在多用户文件系统中,当您调用方法来关闭文件句柄时,您的锁可能无法解锁。
只需几毫秒后重试。