My.Computer.FileSystem.CopyDirectory 方法
更新:2007 年 11 月
將目錄複製到另一個目錄。
' Usage My.Computer.FileSystem.CopyDirectory(sourceDirectoryName ,destinationDirectoryName) My.Computer.FileSystem.CopyDirectory(sourceDirectoryName ,destinationDirectoryName ,overwrite) My.Computer.FileSystem.CopyDirectory(sourceDirectoryName ,destinationDirectoryName ,showUI) My.Computer.FileSystem.CopyDirectory(sourceDirectoryName ,destinationDirectoryName ,showUI ,onUserCancel) ' Declaration Public Sub CopyDirectory( _ ByVal sourceDirectoryName As String, _ ByVal destinationDirectoryName As String _ ) ' -or- Public Sub CopyDirectory( _ ByVal sourceDirectoryName As String, _ ByVal destinationDirectoryName As String, _ ByVal overwrite As Boolean _ ) ' -or- Public Sub CopyDirectory( _ ByVal sourceDirectoryName As String, _ ByVal destinationDirectoryName As String, _ ByVal showUI As UIOption _ ) ' -or- Public Sub CopyDirectory( _ ByVal sourceDirectoryName As String, _ ByVal destinationDirectoryName As String, _ ByVal showUI As UIOption, _ ByVal onUserCancel As UICancelOption _ )
參數
sourceDirectoryName
String。要複製的目錄。必要項。destinationDirectoryName
String。目錄應複製到哪個位置。必要項。overwrite
Boolean。是否應該覆寫現有的檔案。預設值為 False。必要項。showUI
UIOption。是否要視覺化追蹤作業的進度。預設值為 UIOption.OnlyErrorDialogs。必要項。onUserCancel
UICancelOption。指定使用者在作業期間按一下 [取消] 時,所應執行的工作。預設值為 ThrowException。必要項。
例外狀況
下列情形可能會造成例外狀況:
目錄指定的新名稱包含冒號 (:) 或斜線 (\ 或 /) (ArgumentException)。
因下列其中一項原因而導致路徑無效:它是長度為零的字串、它只包含空白字元、它包含無效的字元,或者它是裝置路徑 (開頭為 \\.\) (ArgumentException)。
路徑無效,因為它是 Nothing (ArgumentNullException)。
destinationDirectoryName 為 Nothing 或空字串 (ArgumentNullException)。
來源目錄不存在 (DirectoryNotFoundException)。
來源目錄是根目錄 (IOException)。
合併的路徑指向現有檔案 (IOException)。
來源路徑和目標路徑相同 (IOException)。
ShowUI 設為 UIOption.AllDialogs,而且使用者取消作業,或目錄中有一或多個目錄無法複製 (OperationCanceledException)。
作業是循環的 (InvalidOperationException)。
路徑包含冒號 (:) (NotSupportedException)。
路徑超過系統定義的最大長度 (PathTooLongException)。
路徑中的檔案或資料夾名稱含有冒號 (:),或者是無效的格式 (NotSupportedException)。
使用者缺乏必要的使用權限來檢視路徑 (SecurityException)。
目的檔案已經存在,但無法存取 (UnauthorizedAccessException)。
備註
此方法會複製目錄的內容以及目錄本身。如果目標目錄不存在,就會建立目錄。如果目標位置中已經存在相同名稱的目錄,則兩個目錄中的內容會合併。您也可以在作業期間指定新的目錄名稱。
複製目錄中的檔案時,特定檔案 (例如當 overwrite 設為 False 時,於合併期間已存在的檔案) 可能會造成擲回例外狀況。擲回此類例外狀況時,它們會合併為單一例外狀況,其中 Data 屬性會存有 IDictionary 格式的項目,而在這些資料中,檔案或目錄路徑是索引鍵,特定的例外狀況訊息則包含在對應值中。使用 For…Each 可以列舉所有項目。
工作
下表列出包含 My.Computer.FileSystem.CopyDirectory 方法的工作範例。
若要 |
請參閱 |
---|---|
複製目錄 |
範例
以下範例會將目錄 TestDirectory1 複製到 TestDirectory2,覆寫現有的檔案。
My.Computer.FileSystem.CopyDirectory("C:\TestDirectory1", "C:\TestDirectory2", True)
使用您想要複製的目錄路徑和名稱取代 C:\TestDirectory1,並以您希望的複製目的位置取代 C:\TestDirectory2。
需求
命名空間:Microsoft.VisualBasic.MyServices
類別:FileSystemProxy (提供對 FileSystem 的存取)
組件:Visual Basic 執行階段程式庫 (在 Microsoft.VisualBasic.dll 中)
依專案類型的可用性
專案類型 |
是否可用 |
---|---|
Windows 應用程式 |
是 |
類別庫 |
是 |
主控台應用程式 |
是 |
Windows 控制項程式庫 |
是 |
Web 控制項程式庫 |
是 |
Windows 服務 |
是 |
網站 |
是 |
使用權限
下列使用權限可能為必要:
使用權限 |
描述 |
---|---|
控制存取檔案和資料夾的功能。關聯的列舉型別:Unrestricted。 |
|
控制與使用者介面和剪貼簿相關的使用權限。關聯的列舉型別:SafeSubWindows。 |
請參閱
工作
HOW TO:在 Visual Basic 中取得目錄的檔案集合
HOW TO:在 Visual Basic 中判斷檔案的絕對路徑
HOW TO:在 Visual Basic 中判斷目錄是否存在