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