使用 CopyDirectory 方法将一个目录复制到另一个目录。 此方法复制目录的内容以及目录本身。 如果目标目录不存在,则将创建该目录。 如果目标位置存在同名目录且 overwrite 设置为 False,则将合并这两个目录的内容。 您可以在操作过程中为目录指定新名称。
当复制某目录中的文件时,如果 overwrite 设置为 False,则特定文件(如合并期间存在的文件)可能会导致引发异常。 当引发此类异常时,它们会被合并为一个异常,其 Data 属性保存一些条目,其中文件或目录路径是键,而特定异常消息包含在相应的值中。
将一个目录复制到另一个目录中
使用 CopyDirectory 方法,并指定源目录名和目标目录名。 下面的示例将名为 TestDirectory1 的目录复制到 TestDirectory2,覆盖现有文件。
My.Computer.FileSystem.CopyDirectory("C:\TestDirectory1", "C:\TestDirectory2", True)此代码示例也可用作 IntelliSense 代码段。 在代码段选择器中,它位于**“文件系统 -- 处理驱动器、文件夹和文件”**。 有关更多信息,请参见 如何:插入 IntelliSense 代码段。
可靠编程
以下情况可能会导致异常:
为目录指定的新名称包含冒号 (:) 或斜杠(\ 或 /)(ArgumentException)。
路径无效,由于下列原因之一: 它是零长度字符串,它仅包含空白,它包含无效的字符,或它是一个设备路径 (以开始 \\。 \) (ArgumentException).
路径无效,因为它是 Nothing (ArgumentNullException)。
destinationDirectoryName 为 Nothing 或为空字符串 (ArgumentNullException)。
源目录不存在 (DirectoryNotFoundException)。
源目录是一个根目录 (IOException)。
组合路径指向某个现有文件 (IOException)。
源路径和目标路径相同 (IOException)。
ShowUI 设置为 UIOption.AllDialogs 且用户取消了该操作,或者无法复制目录中的一个或多个文件 (OperationCanceledException)。
操作为循环 (InvalidOperationException)。
该路径包含冒号 (:) (NotSupportedException).
路径超过了系统定义的最大长度 (PathTooLongException)。
路径中的文件名或文件夹名包含冒号 (:),或格式无效 (NotSupportedException)。
该用户缺少查看该路径所必需的权限 (SecurityException)。
目标文件存在但无法访问 (UnauthorizedAccessException)。
请参见
任务
如何:在 Visual Basic 中查找具有特定模式的子目录