0

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

我的代码人有什么问题?

4

3 回答 3

0

你可以试试:

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

它至少会打开被 Word 锁定的文本文件 =) 虽然你的问题的根源将是未知的 =\

于 2012-04-05T10:52:21.180 回答
0

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

几毫秒后重试。

于 2012-04-05T10:56:38.647 回答
0

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

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

于 2012-04-05T09:00:32.957 回答