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

プロセス モニター (ファイルへのアクセス時にリアルタイムのアクティビティを監視する) を使用する代わりに、プロセス エクスプローラー (現在アクセスされていない場合でも、ハンドルを持つすべてのファイルを表示できます) を使用します。

ハンドルまたはDLLの検索/検索に移動し、ファイルを検索してダブルクリックします。これにより、後ろのウィンドウでハンドルが選択され、右クリックして閉じることができます。

于 2012-04-05T09:00:32.957 に答える
0

マルチユーザー ファイル システムでは、メソッドを呼び出してファイル ハンドルを閉じても、ロックが解除されないことがあります。

数ミリ秒後に再試行してください。

于 2012-04-05T10:56:38.647 に答える