C#에서 특정 폴더 내부의 파일을 다른 폴더로 복사하려면 System.IO 네임스페이스의 Directory 및 File 클래스를 사용할 수 있습니다. 다음은 폴더 내의 모든 파일을 복사하는 방법입니다.
1. 파일만 복사 (Directory.GetFiles 사용)
using System;
using System.IO;
class Program
{
static void Main()
{
string sourceFolder = @"C:\SourceFolder";
string destinationFolder = @"C:\DestinationFolder";
// 대상 폴더가 없으면 생성
if (!Directory.Exists(destinationFolder))
{
Directory.CreateDirectory(destinationFolder);
}
// 폴더 내부 파일 복사
foreach (string filePath in Directory.GetFiles(sourceFolder))
{
string fileName = Path.GetFileName(filePath); // 파일명 추출
string destFilePath = Path.Combine(destinationFolder, fileName); // 새 경로 생성
File.Copy(filePath, destFilePath, true); // 기존 파일 덮어쓰기 가능
Console.WriteLine($"파일 복사됨: {fileName}");
}
}
}
📌 설명
- Directory.GetFiles(sourceFolder): 원본 폴더 내 모든 파일 목록 가져오기
- Path.GetFileName(filePath): 파일명만 추출
- Path.Combine(destinationFolder, fileName): 새 파일 경로 생성
- File.Copy(source, destination, true): 파일 복사 (true: 덮어쓰기 허용)
2. 파일 및 폴더까지 모두 복사 (Directory.GetFiles + Directory.GetDirectories)
만약 하위 폴더까지 포함하여 전체 복사하려면 Directory.GetDirectories를 활용하면 됩니다.
using System;
using System.IO;
class Program
{
static void CopyDirectory(string sourceDir, string destinationDir)
{
// 대상 폴더가 없으면 생성
if (!Directory.Exists(destinationDir))
{
Directory.CreateDirectory(destinationDir);
}
// 파일 복사
foreach (string filePath in Directory.GetFiles(sourceDir))
{
string fileName = Path.GetFileName(filePath);
string destFilePath = Path.Combine(destinationDir, fileName);
File.Copy(filePath, destFilePath, true);
Console.WriteLine($"파일 복사됨: {fileName}");
}
// 하위 폴더 복사 (재귀 호출)
foreach (string subDir in Directory.GetDirectories(sourceDir))
{
string subDirName = Path.GetFileName(subDir);
string destSubDir = Path.Combine(destinationDir, subDirName);
CopyDirectory(subDir, destSubDir);
}
}
static void Main()
{
string sourceFolder = @"C:\SourceFolder";
string destinationFolder = @"C:\DestinationFolder";
CopyDirectory(sourceFolder, destinationFolder);
Console.WriteLine("폴더 복사 완료!");
}
}
📌 설명
파일뿐만 아니라 하위 폴더까지 복사 가능
하위 폴더를 복사할 때 재귀 호출을 활용
Directory.GetDirectories(sourceDir): 폴더 목록 가져오기
🏆 결론
1️⃣ 파일만 복사하려면 Directory.GetFiles와 File.Copy를 사용. 2️⃣ 파일과 폴더 전체를 복사하려면 Directory.GetDirectories를 추가하여 재귀적으로 처리.
LIST
'.NET' 카테고리의 다른 글
C#에서 DllImport를 사용해서 C++ DLL 함수를 호출할 때 진입점 못찾는 문제 관련 dumpbin 사용법 (1) | 2025.07.21 |
---|---|
C# Throw 발생 방법 (0) | 2025.05.13 |
C# Random 함수 사용 (1) | 2025.05.13 |
C# 선택한 폴더 안의 파일 및 폴더 삭제 방법 (0) | 2025.05.13 |
BTLE SignalStrength 확인 방법 (0) | 2025.02.20 |