1

新しく作成されたファイルを確認する方法を教えてください。これは、編集されたファイルに対してのみ機能します。

        DateTime time = DateTime.Now;             // Use current time
        string format = "dMyyyy";            // Use this format
        string s = time.ToString(format); 



        fileSystemWatcher1.Path = @"C:\Users\Desktop\test\";
        fileSystemWatcher1.NotifyFilter =   NotifyFilters.LastAccess | 
                                            NotifyFilters.LastWrite | 
                                            NotifyFilters.FileName | 
                                            NotifyFilters.DirectoryName;

        fileSystemWatcher1.IncludeSubdirectories = false;
        fileSystemWatcher1.Filter = s + ".txt";
4

4 に答える 4

1

この記事C#: FileSystem Watcher を使用してファイルまたはディレクトリを監視するアプリケーションで説明されている例に従ってください。

fileSystemWatcher1.NotifyFilterさまざまなイベント ハンドラーをさまざまなアクティビティに割り当てることによって、これらの属性の 1 つが変更されたときに何をする必要があるかを説明する必要があります。例えば:

fileSystemWatcher1.Changed += new FileSystemEventHandler(OnChanged);
fileSystemWatcher1.Created += new FileSystemEventHandler(OnChanged);
fileSystemWatcher1.Deleted += new FileSystemEventHandler(OnChanged);
fileSystemWatcher1.Renamed += new RenamedEventHandler(OnRenamed);

両方のハンドラーの署名を次のように使用します

void OnChanged(object sender, FileSystemEventArgs e)
void OnRenamed(object sender, RenamedEventArgs e)

ハンドラの例OnChanged

public static void OnChanged(object source, FileSystemEventArgs e)
{
   Console.WriteLine("{0} : {1} {2}", s, e.FullPath, e.ChangeType);
}

そして、ウォッチャーがイベントを発生できるようにします。

fileSystemWatcher1EnableRaisingEvents = true;
于 2012-10-12T16:16:50.600 に答える
1

NotifyFilters.CreationTime新しく作成したファイルにも使用できます。

NotifyFilters 列挙体

于 2012-10-12T16:12:17.853 に答える
1

MSDNページはこれについて本当に明確です

// Add event handlers.
fileSystemWatcher1.Created += new FileSystemEventHandler(OnChanged);

// Enable the event to be raised
fileSystemWatcher1.EnableRaisingEvents = true;

// In the event handler check the change type
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);
}

この他のページからわかるように、e. ChangeType列挙には Created 値が含まれます

于 2012-10-12T16:15:03.307 に答える
0

fileSystemWatcher1.Created のイベント ハンドラーを追加していれば、上記は機能するはずです。

于 2012-10-12T16:19:39.337 に答える