特定のディレクトリ内の新しい/既存のファイルが見つかった/作成された場合に発生する必要があるカスタムイベントが必要です。新しいファイルが作成されたかどうかを確認するには、SystemFileWatcherを使用します。これはうまくいきます。プログラムの開始時にいくつかのファイルが存在するかどうかを調べるために、私はいくつかの行を書きました。 SystemFileWatcherはFileCreatedイベントを発生させる場合は、私はこれらのコード行を使用カスタムイベントを正しく呼び出す方法は?
public class FileDetectEventArgs : EventArgs
{
public String Source { get; set; }
public String Destination { get; set; }
public String FullName { get; set; }
public FileDetectEventArgs(String source, String destination, String fullName)
{
this.Source = source;
this.Destination = destination;
this.FullName = fullName;
}
}
:
public void onFileCreated(object sender, FileSystemEventArgs e)
{
// check if file exist
if (File.Exists(e.FullPath))
{
OnNewFileDetect(new FileDetectEventArgs(source, destination, e.FullPath));
}
}
をして、ファイルが存在する場合は、私が提起してみてください
私はイベント引数のために、このクラスを使用しますその方法でのイベント:ここ
public void checkExistingFiles(String source, String filter)
{
DirectoryInfo di = new DirectoryInfo(source);
FileInfo[] fileInfos = di.GetFiles();
String fileFilter = filter.Substring(filter.LastIndexOf('.'));
foreach (FileInfo fi in fileInfos)
{
if (fi.Extension.Equals(fileFilter))
{
OnNewFileDetect(new FileDetectEventArgs(source, destination, fi.FullName));
}
}
}
はOnNewFileDetect-イベントです:
protected void OnNewFileDetect(FileDetectEventArgs e)
{
if (OnNewFileDetectEvent != null)
{
OnNewFileDetectEvent(this, e);
}
}
問題は、onFileCreated-Eventが私のOnNewFileDetect-Eventを呼び出すと問題なく動作します。しかし、checkExistingFilesが既存のファイルをいくつか見つけて、OnNewFileDetect-Eventを発生させようとすると何も起こりません。 OnNewFileDetectEvent-Objectがnullであることを知り、何も起こりません。しかし、onFileCreated-Eventが起動された場合、なぜnullではないのですか?
ありがとうございました。 エラーが表示されます:デリゲート "FileDetecedEvent"は2つの引数を取らない – thomas
@thomasイベントはどのように宣言されていますか? –
パブリックデリゲートvoid FileDetectEvent(オブジェクト送信者、FileDetectedEventArgs e); @Reed Copsey – thomas