2013-03-18 2 views
-4

폴더 내의 모든 파일을 C# .net의 다른 폴더로 복사하는 방법을 알려주십시오.폴더의 모든 파일을 다른 폴더로 복사하는 방법 #

현재 내가 사용하고 있습니다 :

int j = 1; 
int k = 1; 

    for (j = 1; j < 5; j++) 
    { 

     for (k = 1; k < 32; k++) 
     { 

      string sourcePath = @Desktop_location + "\Test" + k + ".log"; 

      if (System.IO.File.Exists(sourcePath)) 
      { 
       File.Copy(@Desktop_location + "\\Statistics\\Server" + j + "\Test" + k + ".log", @Desktop_location + "\\Statistics\\Transfer\\test" + j + k + ".log"); 
       //Console.WriteLine("Test Result"); 
      } 
      else 
      { 
       //Console.WriteLine("Test"); 
+2

이 방법이 효과가 있습니까? 어떤 방식으로 그것을 개선하고 싶습니까? – Jodrell

+0

다른 사람이 여러 폴더에서 모든 파일을 단일 폴더로 복사하는 방법을 알려주세요. 또한 같은 이름을 가진 파일이 두 개 이상의 폴더에 있지만 contenet이 다른 경우 제안하십시오. – Dorgy

+3

마술 번호 '5'와 '32'는 무엇입니까? – TalentTuner

답변

0

당신이 정말로 모든 파일을 복사 할 경우, 당신이 (사본 디렉토리를 포함한 모든 내용)처럼 작업을 수행 할 수 있습니다

foreach (string dirPath in Directory.GetDirectories(sourcePath, "*", SearchOption.AllDirectories)) 
{ 
    Directory.CreateDirectory(dirPath.Replace(sourcePath, destinationPath)); 
} 

foreach (var newPath in Directory.GetFiles(sourcePath, "*.*", SearchOption.AllDirectories)) 
{ 
    File.Copy(newPath, newPath.Replace(sourcePath, destinationPath)); 
} 
+0

같은 이름의 파일이 둘 이상의 폴더에 존재하지만 파일을 복사하는 폴더에 두 파일을 모두 유지하고 싶다면 – Dorgy

+0

@GulshanAnand 그건 초급 논리이므로 직접 코딩하려고 노력하십시오. . 다른 사람들의 코드를 복사하고 붙여 넣는 것을 배우지 않습니다. – Amicable

+0

해당 사본의 이름 지정 방식에 따라 다름. Explorer 사용과 같은 이름 지정 규칙에서 괜찮습니까? 즉, 파일 이름의 끝에 "(1)"접미사가 추가됩니까? –

1
string[] filePaths = Directory.GetFiles(@"c:\MyDir\"); 

참조 : Getting files from a directory

string myPath = @"C:\Test"; 
foreach (string file in filePaths) 
{ 
    FileInfo info = new FileInfo(file); 
    if (!File.Exists(info.FullName)) 
    { 
     File.Copy(info.FullName, newPath); 
    } 
} 

Using FileInfo Class을 참조하십시오. 여기에는 실제로 필요하지 않지만 파일 및 폴더 작업에 유용한 많은 기능이 포함되어 있습니다. 신청서를 읽는 것이 도움이 될 것입니다.

+0

이 코드를 사용하여 하나의 파일 만 복사됩니다. 제발 도와주세요 : – Dorgy

+0

@ GulshanAnand 당신은 제로 노력을하고 있으며, 단지 당신을 위해 그것을하도록 부탁합니다. 그래서 더 이상 당신을 도울 의향이 없습니다. 초보자도 쉽게 해결할 수 있어야합니다. 당신이 읽는 방법을 모르는 경우 [this] (http://www.codeproject.com/Articles/79508/Mastering-Debugging-in-Visual-Studio-2010-A-Beginn) 기사를 읽으십시오. – Amicable

관련 문제