重複の可能性:
C# get file change events
C# を使用して特定のファイル サイズに達したときに特定のファイル サイズを追跡したいのですが、ファイル サイズの変更時にイベント ハンドラーを追加する方法はありますか、それともファイル サイズをチェックし続けるスレッドで無限プロセスを実行する必要がありますか? ありがとう
重複の可能性:
C# get file change events
C# を使用して特定のファイル サイズに達したときに特定のファイル サイズを追跡したいのですが、ファイル サイズの変更時にイベント ハンドラーを追加する方法はありますか、それともファイル サイズをチェックし続けるスレッドで無限プロセスを実行する必要がありますか? ありがとう
を使用しFileSystemWatcher
て、ファイルへの変更を監視します。変更する場合は、サイズを取得します。例えば:
var fsw = new FileSystemWatcher(@"C:\pathtoyourfile");
fsw.Changed += TheFileChanged;
private void TheFileChanged(object sender, FileSystemEventArgs e)
{
if (e.ChangeType == WatcherChangeTypes.Changed)
{
var info = new FileInfo(e.FullPath);
var theSize = info.Length;
}
}
変更の監視が完了したら、FileSystemWatcher を破棄します。
を使用してイベントFileSystemWatcher
を処理できます。Changed
次に、必要な場合にのみファイル サイズを比較する必要があります。
FileSystemWatcherを使用したい。これは、ファイルが変更されたときにイベントを発生させるために使用できます。その典型的な使用法は次のようなものです
// Create a new FileSystemWatcher and set its properties.
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = args[1];
// Watch for changes in LastAccess and LastWrite times, and
// the renaming of files or directories.
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
// Only watch text files.
watcher.Filter = "*.txt";
// Add event handlers.
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);
// Begin watching.
watcher.EnableRaisingEvents = true;
EventHandler
次に、関連するsを追加します
// Define the event handlers.
private static void OnChanged(object source, FileSystemEventArgs e)
{
// Specify what is done when a file is changed, created, or deleted.
Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
}
private static void OnRenamed(object source, RenamedEventArgs e)
{
// Specify what is done when a file is renamed.
Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
}
これが役立つことを願っています。
FileSystemWatcher
クラスとChanged
イベントを使用します。
また、 .NET File System Watcherというクールなプロジェクトもあります。