windowsのC#での話です。あるプロセスが断続的(数秒程度で一定しません)に、ログファイルをオープンして内容を書き込んでファイルをクローズして、、、ということをやっています。で、そのログファイルをtail -fコマンドのように監視するコードを書きたいのですが、どのように書けばいいのかわかりません。FileStream("logfile.txt", FileMode.Open, FileAccess.Read, FileShare.Read)としてファイルをオープンし、ファイルの最後までseekして、それ以降は永久に、1秒sleepしては該当ファイルの内容を読み込み続ける、というプログラムを書いたのですが、このコードを実行すると、このオープンしたログファイルを他のプログラムからは書き込みのために新たにopenできなくなるようで、他のプログラムがログファイルの書き込みでエラーを出力するようになってしまいました。
tail -fをc#で書くにはどのようなコードを書けばいいのでしょうか。ご教授ください。
No.1ベストアンサー
- 回答日時:
> FileStream("logfile.txt", FileMode.Open, FileAccess.Read, FileShare.Read)
アクセス制御の指定がFileShare.Readなので、他のプロセスは読込しかできなく、書き込もうとしたらエラーになります。ここは他のプロセスのアクセスを制御するパラメータなので、
FileShare.Write
または
FileShare.ReadWrite
を指定する必要があります。
No.2
- 回答日時:
ログファイルをフルアクセスで開いて、他のプロセスが書き足してるのに邪魔したらエラーになるのは当然な気がします。
tailの様な事をしたいのであれば、1秒毎にファイルサイズ比較して、増えたらログファイルコピーしてコピーした物開いて、前のファイルサイズ分シークして、増分を出力するとか?(workで作ったファイルは消すなりなんなりするような)
回答ありがとうございます。
ログファイルに内容が追加されていたら毎回コピー、というのはできれば避けたいのですが、、、
回答いただいて申し訳ないのですが、もう少しスマートな方法がほしいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 Windows Updateが動作しません 7 2022/08/12 16:26
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Excel(エクセル) vba レジストリの値を読み込教えてください教えてください 1 2023/07/14 14:09
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Lubuntuでフォントをインストー...
-
【python】pandasでExcel(...
-
FFFTPでサーバに新規フォルダが...
-
Microsoft Access エラー 3051
-
VBAでファイルパスが長すぎてコ...
-
SDカード(16GB)に保存した動画...
-
vba エクセルダウンロードファ...
-
【Excel VBA】PDFを作成して,...
-
Excelでdatファイルを作成??
-
1フォルダに保存できるファイル...
-
Windowsのメモ帳でジョークウイ...
-
複数のテキストファイルをexcel...
-
バッチファイルが作成できない
-
batファイル処理でのテキストフ...
-
バッチファイルで古いフォルダ...
-
ダウンロード不可PDFファイルは...
-
Excel-VBA 撮影日時の取得
-
Webサイト アプリのコンパイル他
-
複数テキストファイルをエクセ...
-
フォルダ作成用バッチファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでファイルパスが長すぎてコ...
-
Microsoft Access エラー 3051
-
Lubuntuでフォントをインストー...
-
【Excel VBA】PDFを作成して,...
-
Refreshで落ちる
-
ExcelVBAで、隠しフォルダにあ...
-
Excel VBA シートを指定して...
-
FFFTPでサーバに新規フォルダが...
-
VBAでFTPファイル転送がうまく...
-
フォルダ参照ではなくファイル...
-
エクセルVBA フォームを開く時...
-
グーグルドライブからコピーし...
-
OCXのライセンス
-
ファイルが別のPCで開けない
-
ASP上でFileSystemObjectのDele...
-
ASP.NETで、別サーバーへファイ...
-
VBSで指定したフォルダにファイ...
-
BASP21のアップロードについて
-
【python】pandasでExcel(...
-
vba エクセルダウンロードファ...
おすすめ情報