問題タブ [procmon]
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.
c# - C# で低レベルの OS ファイル トランザクションをログに記録するにはどうすればよいですか?
File/Process Monitor はフィルタリングとロギング時の不必要な複製の点で不十分なので、そのプログラムが行うことを再現し、すべての Windows ファイル操作をリアルタイムで記録したいと考えています。
Process Monitorと同じように、時間、プロセス名、ソース パス、宛先パス、操作、結果、詳細などのさまざまな属性を記録したいと考えています。
C# でこの情報を OS から抽出するにはどうすればよいですか?
編集: zett42 が指摘したように、FileSystemWatcher
プロセス自体から作成されたファイル イベントは傍受されないなど、まったく機能しません。たとえば、 、、、およびのイベントを に追加し、フラグを trueに設定しても、これらのトランザクションは表示されません。Changed
Created
Renamed
Deleted
FileSystemWatcher
EnableRaisingEvents
編集 2: Microsoft.Diagnostics.Tracing.TraceEvent nuget パッケージに関する SimonMourier の提案を使用して、以下のコードをノックアップすることができました。
このセクションは、バックグラウンド ワーカーに配置されます。
そして、作成された FileIOWrite イベントは、(自動的に) 呼び出されたときに次を実行します。
残念ながら、FileIOReadWriteTraceData.FileName
Procmon がピックアップするもの (たとえば) をピックアップしていませんC:\Users\Dan\AppData\Local\Google\Chrome\User Data\Default\Cookies-journal
。C:\Users\Dan\AppData\Local\Google\Chrome\User Data\Default\Current Session