Share via


방법: Visual Basic에서 디렉터리를 다른 디렉터리에 복사

업데이트: 2007년 11월

디렉터리를 다른 디렉터리에 복사하려면 My.Computer.FileSystem.CopyDirectory 메서드 메서드를 사용합니다. 이 메서드는 디렉터리의 내용과 디렉터리 자체를 복사합니다. 대상 디렉터리가 없으면 새로 만들어집니다. 대상 위치에 같은 이름의 디렉터리가 있고 overwrite가 False로 설정되어 있으면 두 디렉터리의 내용이 병합됩니다. 작업 도중 디렉터리의 새 이름을 지정할 수 있습니다.

디렉터리 내에서 파일을 복사할 때 overwrite가 False로 설정된 경우 병합 도중 해당 파일이 이미 존재함으로 인해 예외가 throw될 수 있습니다. 이러한 예외가 throw되면 이들 예외는 하나의 예외로 통합되며, 이때 파일 또는 디렉터리 경로가 키이고 해당 값에 특정 예외 메시지가 포함된 항목이 Data 속성에 저장됩니다.

디렉터리를 다른 디렉터리에 복사하려면

  • CopyDirectory 메서드를 사용하면서 소스 및 대상 디렉터리 이름을 지정합니다. 다음 예제에서는 TestDirectory1 디렉터리를 TestDirectory2로 복사하며 기존 파일은 덮어씁니다.

    My.Computer.FileSystem.CopyDirectory("C:\TestDirectory1", "C:\TestDirectory2", True)
    

    이 코드 예제는 IntelliSense 코드 조각으로도 사용할 수 있습니다. 이 코드 조각은 코드 조각 선택기의 파일 시스템 - 드라이브, 폴더 및 파일 처리에 있습니다. 자세한 내용은 방법: 사용자 코드에 코드 조각 삽입(Visual Basic)을 참조하십시오.

강력한 프로그래밍

다음 조건에서 예외가 발생합니다.

  • 디렉터리에 대해 지정된 새 이름에 콜론(:)이나 슬래시(\ 또는 /)가 포함된 경우(ArgumentException)

  • 길이가 0인 문자열이거나, 공백만 포함하거나, 잘못된 문자를 포함하거나, \\.\로 시작하는 장치 경로와 같은 여러 가지 이유 중 하나로 경로가 올바르지 않은 경우(ArgumentException)

  • 경로가 Nothing이기 때문에 올바르지 않은 경우(ArgumentNullException)

  • destinationDirectoryName이 Nothing이거나 빈 문자열인 경우(ArgumentNullException)

  • 소스 디렉터리가 없는 경우(DirectoryNotFoundException)

  • 소스 디렉터리가 루트 디렉터리인 경우(IOException)

  • 조합된 경로가 기존 파일을 가리키는 경우(IOException)

  • 소스 경로와 대상 경로가 같은 경우(IOException)

  • ShowUI가 UIOption.AllDialogs로 설정되어 있는데 사용자가 작업을 취소했거나 디렉터리에서 하나 이상의 파일을 복사할 수 없는 경우(OperationCanceledException)

  • 작업이 순환적인 경우(InvalidOperationException)

  • 경로에 콜론(:)이 포함된 경우(NotSupportedException)

  • 경로가 시스템 정의 최대 길이를 초과하는 경우(PathTooLongException)

  • 경로의 파일 이름이나 폴더 이름에 콜론(:)이 있거나 이름의 형식이 잘못된 경우(NotSupportedException)

  • 경로를 보는 데 필요한 권한이 사용자에게 없는 경우(SecurityException)

  • 대상 파일은 있지만 액세스할 수 없는 경우(UnauthorizedAccessException)

참고 항목

작업

방법: Visual Basic에서 특정 패턴의 하위 디렉터리 찾기

방법: Visual Basic에서 디렉터리의 파일 컬렉션 가져오기

방법: Visual Basic에서 디렉터리 이동

방법: Visual Basic에서 디렉터리의 내용 이동

참조

My.Computer.FileSystem.CopyDirectory 메서드