3

Windowsサービスとして実行されているFileSystemWatcherを使用する単純なアプリがあります。ファイルは、ExcelVBマクロを介してディレクトリに保存されます。

ActiveWorkbook.SaveAs Filename:= "pathToSaveTo"

新しいファイルを作成すると、ウォッチャーはファイルを処理するためのメソッドを呼び出します

void watcher_FileCreated(object sender, FileSystemEventArgs e)
    {
        while (true)
        {
            if (FileUploadComplete(e.FullPath))
            {
                this.ProcessOneFile(e.FullPath, e.Name);
                break;
            }
        }
    }

ウォッチャーアプリは、これが発生したときにイベントを登録することはありませんが、ファイルを手動で削除してフォルダーに再度追加すると、イベントが発生します。

ファイルがディレクトリに保存されたときに期待される動作を取得する方法を知っている人はいますか?

4

2 に答える 2

6

暗闇の中でのショット、おそらく「SaveAs」の実装は、データを一時ファイルに書き込み、それを最終ディレクトリに「移動」するような奇妙なことを行っており、「名前の変更」または「変更」イベントとして発生する可能性があります代わりは。

まだ行っていない場合は、これらの他のイベントに登録してみて、おそらく「名前を付けて保存」で起動するかどうかを確認してください。

于 2009-09-23T16:18:46.187 に答える
0

ファイルが既に存在し、上書きされている場合、Created イベントは発生しません。Changed イベントも接続してみてください。

于 2009-09-23T16:20:07.627 に答える