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。 |