2016-08-08 5 views
0

私は同様のissueを持っています。しかし、私は特定のディレクトリからファイルを読むためにWindowsサービスを使用しています。複数のファイルが同時にまたは1つずつ表示される可能性があります。問題は、ファイルを読み込むときですが、別のファイルを置くとファイルアクセスの例外がスローされます。助けてください。ありがとう。ここで Windowsサービスを使用してファイルを読み込んだときにFileSystemWatcherによるファイルアクセスエラー

はコードです:

private static void OnCreated(object source, FileSystemEventArgs e) 
    { 
     try 
     { 
      var data = new FileData(); 
      data.ReadFile(e.FullPath); 

     } 
     catch (Exception ex) 
     { 
      WriteLogForError(ex.Message, String.Empty, ErrorLogPath); 
     } 
    } 
+0

コードを表示すると、ファイルが作成されただけで、まだ書き込まれていないことを意味しません。ファイルのサイズによって異なります。 – BugFinder

+1

ファイルシステムやその他のプロセス(バグファインダーに記載されているファイルのソースやウイルス対策など)は制御しません。あなたが望むモードでファイルを開くことができるようになるまでは、読んだり、スリープ/ループすることができないファイルに対処するのが唯一のオプションです。あなたが望む完全な内容を持っています。 –

+0

@Damien_The_Unbelieverそのためのサンプルコードを教えてもらえますか? –

答えて

0

あなたは、ファイル、それが作成されている瞬間にアクセスしてみてください。ファイルを作成している他のプロセスはまだ書き込みを行っている可能性があります。したがって、まだ触れてはいけません。

解決策は厄介です:ファイルをいくつかのリスト/キューに入れ、タイマーを起動して、数秒後にそれを読もうとしてください(試して忘れずに失敗を再試行してください。他のプロセスが作業を終了したという直接の通知はありません)。

+0

私はThread.Sleep()を試しています。ファイルが書き込まれるのを待つ。私が成功すれば、コードで回答を掲示する。 –

関連する問題