VB引用中的“复制本地”是什么意思?

 我来答
碧血玉叶花
2015-05-16 · TA获得超过4976个赞
知道大有可为答主
回答量:6154
采纳率:0%
帮助的人:1730万
展开全部

首先你说的这几种方法都可以有相应的实现方法,下面一一列举:

  1. vb函数实现复制文件夹。首先要指出,vb有6个基本的关于文件或文件夹操作的函数:(1)建立文件夹的函数MkDir;(2)改变当前文件夹ChDir;(3)删除文件夹RmDir;(4)删除文件kill;(5)复制文件FileCopy;(6)文件的改名和移动。但却没有直接的文件夹整体复制的基本函数。但用以上这些基本的函数却可以实现文件夹的任何操作:下面以例子来说明:在D盘根目录下有一个a文件夹,里边有很多文件,现在把它复制到"D:\aa"中去,aa是D盘中的一个文件夹.实现过程这样,(1)先在D:\aa中创建一个文件夹名为a,用函数MkDir;(2)然后把依次把D:\a中的文件复制到D:\aa\a中去。程序实现如下:Private Sub Command1_Click()
    Dim fname As String
    fname = Dir("d:\a\*.*", 7)
    MkDir "d:\aa\a"
    Do
    If fname = "" Then Exit Do
    FileCopy "d:\a\" & fname, "d:\aa\a\" & fname
    fname = Dir()
    Loop
    End Sub2.复制文件夹的API函数:SHFileOperation。他可以很方便的实现文件夹的复制,但要配合一个文件类来实现,还是以例子来说明吧:在D盘根目录下有一个a文件夹,里边有很多文件,现在把它复制到"D:\bb"中去,程序实现如下:Private Type SHFILEOPSTRUCT  '文件类的定义,固定模式,直接拿来使用,不用管具体构成
       hwnd As Long
       wFunc As Long
       pFrom As String
       pTo As String
       fFlags As Integer
       fAnyOperationsAborted As Long
       hNameMappings As Long
       lpszProgressTitle As String '只有在 FOF_SIMPLEPROGRESS 时用
    End Type
    Private Declare Function SHFileOperation Lib _
    "shell32.dll" Alias "SHFileOperationA" (lpFileOp _
    As SHFILEOPSTRUCT) As Long  'api函数SHFileOperation 的声明
    'wFunc 常数
    'FO_COPY  把 pFrom 文件拷贝到 pTo。
    Const FO_COPY = &H2'fFlag 常数
    'FOF_ALLOWUNDO 允许 Undo 。
    Const FOF_ALLOWUNDO = &H40
    'FOF_NOCONFIRMATION 不显示系统确认对话框。
    Const FOF_NOCONFIRMATION = &H10
    'FOF_NOCONFIRMMKDIR 不提示是否新建目录。
    Const FOF_NOCONFIRMMKDIR = &H200
    'FOF_SILENT 不显示进度对话框
    Const FOF_SILENT = &H4'以上皆为SHFileOperation 需要的变量的声明,固定声明格式直接拿来使用
    Private Sub Command2_Click()
    Dim SHFileOp As SHFILEOPSTRUCT
    SHFileOp.wFunc = FO_COPY
    SHFileOp.pFrom = "d:\a"
    SHFileOp.pTo = "d:\bb"
    SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMMKDIR
    Call SHFileOperation(SHFileOp)
    End Sub3.FSO方法实现文件夹的复制,它的使用与FileCopy类似,但还不一样,它只能把一个文件夹里边的文件完全复制到目标文件夹中,但是不能连同此文件夹一块复制进去,因此用FSO实现复制也需要两步,(1)先在目标文件夹中创建一个与复制的文件夹同名的文件夹,然后把文件复制进去。现用例子来说明:在D盘根目录下有一个a文件夹,里边有很多文件,现在把它复制到"D:\cc"中去,程序实现如下:"工程"--"引用"--"Microsoft Scripting Runtime"Private Sub Command3_Click()
    Dim fso As New FileSystemObject
    Dim fldr As Folder
    MkDir "D:/cc/a"
    fso.CopyFolder "D:/a", "D:/cc/a", True
    End Sub好了三种实现方法都能做到复制文件夹,另外再给你提供一种方法,就是用dos命令,利用vb里边的函数shell来调用cmd.exe执行dos命令,有时候shell也是很不错的选择。具体例子如下:Private Sub Command4_Click()Shell "cmd.exe /c xcopy " + Chr(34) + "D:\dd D:\a /q /e" + Chr(34)
    end sub好了,关于文件夹复制的方法你可以根据自己的习惯选择一种来实现你的程序。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式