2010-03-27 4 views
0

프로그램이 파일을 반복하므로 매우 이상합니다! outfolder와 infolder는 모두 H :/Windows 7을 사용하는 외부 HD입니다. 아이디어는 extention db와 svn-base가있는 파일 만 포함하는 모든 폴더를 이동하는 것입니다. 폴더를 이동하려고하면 예외가 발생합니다. VS2010은 dir에 지정된 폴더를 찾을 수 없다고 알려줍니다. 이 코드는 dir을 통해 반복되므로 어떻게 찾을 수 없습니까! 이건 이상해.File.Move, 왜 FileNotFoundException을 얻습니까? 파일이 존재합니다

 string []theExt = new string[] { "db", "svn-base" }; 
     foreach (var dir in Directory.GetDirectories(infolder)) 
     { 
      bool hit = false; 
      if (Directory.GetDirectories(dir).Count() > 0) 
       continue; 
      foreach (var f in Directory.GetFiles(dir)) 
      { 
       var ext = Path.GetExtension(f).Substring(1); 
       if(theExt.Contains(ext) == false) 
       { 
        hit = true; 
        break; 
       } 
      } 
      if (!hit) 
      { 
       var dst = outfolder + "\\" + Path.GetFileName(dir); 
       File.Move(dir, outfolder); //FileNotFoundException: Could not find file dir. 
      } 
     } 
    } 
+0

'dst'에 사용하지 않은 변수가 있음을 알고 있습니까? –

+0

그래, 그곳에는 내가 dir + 파일명 대 dir을 원한다면 오류를 확인한 후에 거기에 있었다. 도 오. –

답변

6

는 당신이 파일 이름을 기대 File.Move를 사용하여 전체 디렉토리를 이동하려고 생각합니다.

대신 전체 폴더를 이동할 수 있으므로 Directory.Move을 사용해보세요.

+1

. 와우, 거기에 차이가 있었는지 전혀 몰랐거나 심지어 그 디렉토리. –

관련 문제