2013-06-20 3 views
0

У меня есть FileSystemWatcher, когда я делаю файл в первом каталоге, он должен идти и на второй. Поэтому я хочу, чтобы файл был перезаписан, когда он уже существует во втором каталоге. Это не сработает. Я получил это:Почему мой FileSystemWatcher не работает?

private void fileSystemWatcher1_Created(object sender, System.IO.FileSystemEventArgs e) 
    { 

      listBox1.Items.Add("File created> " + e.FullPath + " -Date:" + DateTime.Now); 
      if (File.Exists(target+e.Name)) 
      { 
       File.Delete(target+e.Name); 
      } 
      File.Copy(e.FullPath, Path.Combine(target, e.Name)); 
    } 

и я получил еще одну проблему: Это показывает, когда создается файл, но не тогда, когда он переименован, удален, изменен. Вот мой код .:

private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e) 
    { 
     if (!pause) 
     { 
      listBox1.Items.Add("File changed> " + e.FullPath + " -Date:" + DateTime.Now); 
     } 

    } 

    private void fileSystemWatcher1_Created(object sender, System.IO.FileSystemEventArgs e) 
    { 

      listBox1.Items.Add("File created> " + e.FullPath + " -Date:" + DateTime.Now); 
      if (File.Exists(target+e.Name)) 
      { 
       File.Delete(target+e.Name); 
      } 
      File.Copy(e.FullPath, Path.Combine(target, e.Name)); 
    } 

    private void fileSystemWatcher1_Deleted(object sender, System.IO.FileSystemEventArgs e) 
    { 
     if (!pause) 
     { 
      listBox1.Items.Add("File deleted> " + e.FullPath + " -Date:" + DateTime.Now); 
      File.Delete(target+e.Name); 
     } 
    } 

    private void fileSystemWatcher1_Renamed(object sender, System.IO.RenamedEventArgs e) 
    { 
     if (!pause) 
     { 
      listBox1.Items.Add("File renamed> " + e.FullPath + " -Date:" + DateTime.Now); 
     } 
    } 
     private void Start_Click(object sender, EventArgs e) 
    { 
     fileSystemWatcher1.Path = source; 
     if (!pause) 
     { 
      pause = true; 
      Start.Text = "Pause"; 
      fileSystemWatcher1.EnableRaisingEvents = true; 
     } 
     else 
     { 
      pause = false; 
      Start.Text = "Start"; 
      fileSystemWatcher1.EnableRaisingEvents = false; 

     } 

    } 
+1

Кажется, что пауза верна ... Не могли бы вы показать нам код, в котором вы объявляете FileSystemWatcher? –

+0

@ Джон Смит: Можете ли вы вставить код, в котором вы инициализируете 'FileSystemWatcher?' –

+0

@DominicZukiewicz получил его. Посмотрите мое редактирование –

ответ

0

если (! Пауза) {

} вызывает проблему, вы должны удалить его.

Смежные вопросы