그러냐

c# 폴더 전체 복사 본문

c#

c# 폴더 전체 복사

관절분리 2018. 12. 18. 11:42
반응형

검색하면 


public void CopyFolder(string sourceFolder, string destFolder)
{
    if (!Directory.Exists(destFolder))
        Directory.CreateDirectory(destFolder);

    string[] files = Directory.GetFiles(sourceFolder);
    string[] folders = Directory.GetDirectories(sourceFolder);

    foreach (string file in files)
    {
        string name = Path.GetFileName(file);
        string dest = Path.Combine(destFolder, name);
        File.Copy(file, dest);
    }

    foreach (string folder in folders)
    {
        string name = Path.GetFileName(folder);
        string dest = Path.Combine(destFolder, name);
        CopyFolder(folder, dest);
    }
}




이런 소스가 많이 검색된다.. msds에서 검증된 소스로 돌려보면 아주 쉽게 잘된다


그런데  


https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/file-system/how-to-provide-a-progress-dialog-box-for-file-operations


링크에서 알려주듯이 참조추가한 후 아래와 같이 작성하면 다이얼로그까지 뜨면서 실제로 복사하는 듯한 수행을 해준다


결론 아래 방법 ***강추***



// The following using directive requires a project reference to Microsoft.VisualBasic. using Microsoft.VisualBasic.FileIO; class FileProgress { static void Main() { // Specify the path to a folder that you want to copy. If the folder is small, // you won't have time to see the progress dialog box. string sourcePath = @"C:\Windows\symbols\"; // Choose a destination for the copied files. string destinationPath = @"C:\TestFolder"; FileSystem.CopyDirectory(sourcePath, destinationPath, UIOption.AllDialogs); } }

반응형