3

重複の可能性:
C# get file change events

C# を使用して特定のファイル サイズに達したときに特定のファイル サイズを追跡したいのですが、ファイル サイズの変更時にイベント ハンドラーを追加する方法はありますか、それともファイル サイズをチェックし続けるスレッドで無限プロセスを実行する必要がありますか? ありがとう

4

4 に答える 4

8

を使用し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 を破棄します。

于 2012-12-05T14:28:24.650 に答える
3

を使用してイベントFileSystemWatcherを処理できます。Changed次に、必要な場合にのみファイル サイズを比較する必要があります。

FileSystemWatcher-チュートリアル

于 2012-12-05T14:29:07.633 に答える
1

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);
}

これが役立つことを願っています。

于 2012-12-05T14:31:18.013 に答える
1

FileSystemWatcherクラスとChangedイベントを使用します。

また、 .NET File System Watcherというクールなプロジェクトもあります。

ここに画像の説明を入力

于 2012-12-05T14:33:23.627 に答える