問題タブ [filesystemwatcher]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - ファイル システムの変更を監視する方法
大学の分散システムのコースでプロジェクトを行っています。私は Dropbox ( getdropbox.com ) に似たものを作成することを計画していますが、集中型ではないピアツーピアのひねりを加えています。このために、ディレクトリ構造の変更を検出する方法が必要です。Dropbox はこれをどのように行っていると思いますか? それらの実装は非常にうまく機能します。Windows の win32 API から FileSystemWatcher を使用しているのか、Linux と Mac に類似したプラットフォームに依存するものを使用しているのか疑問に思います。
filesystemwatcher - C# FileSystemWatcher が Perforce 復帰をキャッチしない
C# FileSystemWatcher は Perforce 復帰をキャッチしません。同じファイルが変更された場合は正常に機能します。元に戻すとファイルが変更されるため、問題が発生しますが、FileSystemWatcher には通知されません。
Perforce の復帰をどのように監視しますか?
ありがとうございました。
vb.net - FileSystemWatcher で複数の変更イベントを処理する
私は次のサブを持っています:
ファイルが FTP によってアップロードされているときに、まだ複数の変更されたファイルの通知を受け取ります。
Try を変更して、過去 (時間) 内に発生した場合は変更通知もスローするようにします。たとえば、3 秒としましょう。些細なことのはずなのに、どういうわけか今日は思い浮かばず、Google で見つけた答えが頭に浮かびません。
ありがとう、スコット
.net - File Watcher - Windows でファイルを作成したプロセス名を取得しますか?
Windows でファイルを作成したプロセス名を取得する良い方法はありますか?
Windows 2000 Server
C:\WINNT\Temp
に、
70618199
21834082 のような名前のファイルでいっぱいになっているディレクトリがあります。
サイズは常に 121,201 KB です。
この場所にファイルをドロップしているプログラム名またはサービス名をプログラムで「キャプチャ」できますか?
詳細情報:
これについてさらに調査を行いました。ファイルの名前を TIFF に変更し、開くことができました。
このマシンは、カスタム作成された ASP.NET アプリを介してドキュメント検索ツールとして機能します。このマシンには、E:\ ドライブに約 50,000 の TIFF ドキュメントが含まれています。このマシンでは、フルテキスト インデックスを有効にして SQL Server 2000 も実行しています。フルテキスト インデックス作成は TIFF にまったく影響を与えませんが、これは SQL であるため、そうすべきではありません。ただし、FTS ではインデックス サービスをオンにする必要があります。奇妙なことに、この TIFF は、Web サーバーから提供される最大のもののようです。IIS またはインデックス サービスは、ある種のキャッシュに C:\WINNT\Temp を使用しますか? 考え?
解決策 (多分?)
これは、Microsoft Indexing Service のようです。
シャットダウンすると、これらのファイルは WINNT\Temp に作成されません。
見つけた最大のファイルを取得して、WINNT\Temp にコピーするようです。これは奇妙です。100MB 以上の TIFF ファイルを扱っている場合、これによりディスク容量が不足する可能性があります。とてもうるさい。
Indexing Services の "Web" ブランチをシャットダウンすると思います。
.net - VB.NET FileSystemWatcher の複数の変更イベント
次のコードがあります。
これを実行して C ドライブのファイルに変更を保存すると、watcher_Changed() メソッドが 4 回実行されることを除けば、コードはうまく機能します。理由はありますか?changeType は毎回「4」です。
ありがとう。
c# - FileSystemWatcher.WaitForChangedが返されますが、ファイルはまだロックされています
ドキュメントをpdfプリンタードライバーに送信し、そのドライバーが特定のディレクトリに印刷するプログラムがあります。印刷後、PDFを電子メール(MailMessage)に添付して送信したいと思います。
現在、ドキュメントをプリンターに送信し(新しいプロセスを生成します)、FileSystemWatcher.WaitForChanged(WaitForChangedResult.Created)を呼び出しますが、オブジェクトが作成されても「印刷」は行われず、PDFプリンターにはまだそのファイルを電子メールに添付しようとするとエラーが発生します。
- プレーンなThread.Sleep(2000)などを検討しましたが、それは理想的とは言えません。
- 添付コードをtry/catchブロックに入れて失敗時にループすることを検討しましたが、これも悪いニュースです。
私は本当にエレガントな解決策を考えることはできません。
c# - FileSystemWatcher が Visual Studio からの変更を検出しないのはなぜですか?
フォルダー内のファイルの変更に応答する小さなアプリケーションを作成しました。しかし、Visual Studio 2008 でファイルを編集すると、何も検出されません。代わりにメモ帳でファイルを編集すると、すべてが期待どおりに機能します。
確かに、Visual Studio はある時点でファイルを保存しますが、スタジオを閉じてもウォッチャーはトリガーしません。ここで何が欠けているのか分かりますか?
このサンプル コード (C#) は、問題を説明する必要があります。
同じ問題を説明しているAyende のブログ投稿を見つけましたが、残念ながら解決策はありません。
c# - ディレクトリに複数のファイルを追加すると、FileSystemWatcher でファイル アクセス エラーが発生する
監視対象のディレクトリに複数のファイルを配置すると、FileSystemWatcher で問題が発生します。ディレクトリに配置されたらすぐにファイルを解析したい。通常、最初のファイルは正常に解析されますが、ディレクトリに 2 番目のファイルを追加すると、アクセスの問題が発生します。場合によっては、最初のファイルが解析されないこともあります。このディレクトリを実行して監視しているアプリケーションは 1 つだけです。最終的に、このプロセスは複数のマシンで実行され、共有ディレクトリを監視しますが、データがデータベースにインポートされ、主キーがないため、各ファイルを解析できるサーバーは 1 つだけです。
FileSystemWatcher コードは次のとおりです。
次に、ファイルを解析するメソッド:
2番目のファイルを移動すると、引っかかります
System.IO.IOException: 別のプロセスで使用されているため、プロセスはファイル 'C:\Temp\TestFile.txt' にアクセスできません。
複数のマシンで実行されている場合、このエラーが表示されると予想されますが、現在は 1 つのサーバーでのみ実行されています。このファイルを使用する別のプロセスがあってはなりません - 私はそれらを作成し、アプリケーションの実行中にディレクトリにコピーします。
これは FileSystemWatcher を設定する適切な方法ですか? このファイルをロックしているものを確認するにはどうすればよいですか? 両方のファイルを解析しないのはなぜですか? FileStream を閉じる必要がありますか? FileShare.None オプションを保持したいのは、ファイルを解析するサーバーが 1 つだけであるためです。ファイルに最初にアクセスしたサーバーがファイルを解析します。