Programming/C# - Window

C#/ 디렉터리 및 파일 copy와 delete

esoog Polaris 2023. 12. 3. 22:23
반응형

# 디렉터리 및 파일 copy

// 로컬 폴더 및 데이터 카피 로직(재귀적 생성)
public void CopyDirectory(string sourceDir, string destDir)
{
    try
    {
        if (!Directory.Exists(destDir))
        {
            Directory.CreateDirectory(destDir);
        }

        foreach (string file in Directory.GetFiles(sourceDir))
        {
            string destFile = Path.Combine(destDir, Path.GetFileName(file));
            File.Copy(file, destFile, true); // true: 덮어쓰기 허용
        }

        foreach (string subDir in Directory.GetDirectories(sourceDir))
        {
            string destSubDir = Path.Combine(destDir, Path.GetFileName(subDir));
            CopyDirectory(subDir, destSubDir);
        }
    }
    catch (Exception ex)
    {

    }
}

 

 

 

 

# 디렉터리 및 파일 delete

public void DeleteLocalContents(string folderPath)
{
    try
    {
        foreach (string file in Directory.GetFiles(folderPath))
        {
            File.Delete(file);
        }

        // Directory.GetDirectories(): 모든 하위폴더 목록 추출
        // 역순으로 가장 하위 폴더부터 재귀적 검색(삭제 로직)
        string[] subfolders = Directory.GetDirectories(folderPath);
        for (int i = subfolders.Length - 1; i >= 0; i--)
        {
            DeleteLocalContents(subfolders[i]);
        }

        Directory.Delete(folderPath, true); // true: 하위 폴더 및 파일 모두 삭제
        // 안전한 삭제 위해서 파일먼저 삭제 후 실행
    }
    catch (Exception ex)
    {

    }
}
728x90

'Programming > C# - Window' 카테고리의 다른 글

C#/ FTP 파일 서버 사용하기  (0) 2023.12.03
C#/ 압축파일 만들기  (2) 2023.12.03
C#/ 타이머 핸들러 사용(Timer)  (0) 2023.12.02
C#/ 레지스트리 등록 사용  (0) 2023.12.02
C#/ .xml 설정파일 사용  (2) 2023.12.02