2013-06-20 2 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

입니다.