com-portからデータを継続的に取得してファイルに取り込むサードパーティのツールによって更新されているファイルにアクセスしています。 このファイルには、データが入力されている間、私は内容をチェックしたり、自分の目的のステータスを記録したりしたいと思っていました。FileInfo.lengthとFile.ReadAllText
そして、私は、ファイルの長さを知っていると私はまた、必須キーワードは、(継続的に更新されている)ファイルで提供されているかどうかを確認するためにFile.ReadAllText(Filename).Contains(SearchText)
を使用するFileInfo.Length
操作を使用してチェックを行うため。 実行中のファイルにFileInfo.Length
とFile.ReadAllText
を使用すると、サードパーティのツールによる更新操作に影響するかどうかを問い合わせることができます。 これらのチェックの結果、サードパーティのツールによって更新されるファイルにデータが失われることはありませんか??
また、このファイルの更新の遅延などの影響がありますか?
はい、これはかなり可能性があります。 File.ReadAllText()はファイルへの書き込みを禁止するファイルにロックを設定します。 FileShare.ReadWriteで開かれたFileStreamを使用してStreamReaderに渡す必要があります。それはまたかなり高価な操作であり、そのようなファイルは非常に大きくなる可能性があり、最終的にDOS攻撃に変わります。 –
私はあなたが私の2番目の質問に答えていると仮定しています(また、このファイルの更新などの遅れのような影響もありますか?)...その場合、File.ReadAllTextによってロックが解除されたときに少なくとも、 thirdpartyツールはファイルの更新を(データの損失なしに)続けることができますか?遅れは良いがデータの損失ではない – giboo