ฉันใช้ Windows Forms Application เพื่อตรวจสอบไดเร็กทอรีและย้ายไฟล์ที่ทิ้งไว้ในไดเร็กทอรีอื่น
ในขณะนี้มันจะคัดลอกไฟล์ไปยังไดเร็กทอรีอื่น แต่เมื่อมีการเพิ่มไฟล์อื่นมันจะจบลงโดยไม่มีข้อความแสดงข้อผิดพลาด บางครั้งจะคัดลอกสองไฟล์ก่อนที่จะสิ้นสุดในไฟล์ที่สาม
นี่เป็นเพราะฉันใช้ Windows Form Application แทนที่จะเป็นแอปคอนโซลใช่หรือไม่ มีวิธีใดบ้างที่ฉันสามารถหยุดโปรแกรมไม่ให้สิ้นสุดและเฝ้าดูไดเร็กทอรีต่อไป
private void watch()
{
this.watcher = new FileSystemWatcher();
watcher.Path = path;
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.Filter = "*.*";
watcher.Changed += OnChanged;
watcher.EnableRaisingEvents = true;
}
private void OnChanged(object source, FileSystemEventArgs e)
{
//Copies file to another directory.
}
public void Dispose()
{
// avoiding resource leak
watcher.Changed -= OnChanged;
this.watcher.Dispose();
}