Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#의 디렉토리에 파일을 복사하는 방법은 무엇입니까?

<시간/>

파일을 복사하기 위해 C#은 File 메서드를 제공합니다. 복사

파일. 복사에 2개의 오버로드가 있습니다.

복사(문자열, 문자열) - 기존 파일을 새 파일로 복사합니다. 같은 이름의 파일은 덮어쓸 수 없습니다.

복사(문자열, 문자열, 부울) 기존 파일을 새 파일에 복사합니다. 같은 이름의 파일을 덮어쓸 수 있습니다.

Directory.GetFiles 지정된 검색 패턴과 일치하는 모든 파일(경로 포함)의 이름을 반환하고 선택적으로 하위 디렉터리를 검색합니다.

static void Main (string[] args) {
   string rootPath = @"C:\Users\Koushik\Desktop\TestFolder\TestFolderMain1";

   var searchSourceFolder = Directory.GetFiles(rootPath, "*.*", SearchOption.TopDirectoryOnly);
   Console.WriteLine("-------------Source Folder-------------");
   foreach (string file in searchSourceFolder){
      Console.WriteLine(file);
   }

   string destinationFolder = @"C:\Users\Koushik\Desktop\TestFolder\TestFolderMain2\";

   var destinationFolderFiles = Directory.GetFiles(destinationFolder, "*.*",    SearchOption.TopDirectoryOnly);
   Console.WriteLine("-------------Destination Folder Before Copying-------------");
   foreach (string file in destinationFolderFiles){
      Console.WriteLine(file);
   }

   string[] files = Directory.GetFiles(rootPath);

   foreach (string file in files){
      File.Copy(file, $"{destinationFolder}{ Path.GetFileName(file) }");
   }
   Console.WriteLine("-------------After Copying-------------");

   var destinationFolderAfterCopyingFiles = Directory.GetFiles(destinationFolder, "*.*",    SearchOption.TopDirectoryOnly);

   foreach (string file in destinationFolderAfterCopyingFiles){
      Console.WriteLine(file);
   }
   Console.ReadLine ();
}

출력

-------------Source Folder-------------
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain1\TestFolderMain1.txt
-------------Destination Folder Before Copying-------------
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain2\TestFolderMain2.txt
-------------After Copying-------------
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain2\TestFolderMain1.txt
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain2\TestFolderMain2.txt