vb复制文件夹有几种方法?
有复制文件夹的---vb函数??有复制文件夹的------vbapi函数???复制文件夹的---------FSO方法???...
有复制文件夹的---vb函数?? 有复制文件夹的------vb api函数??? 复制文件夹的---------FSO方法???
展开
4个回答
2013-07-17
展开全部
首先你说的这几种方法都可以有相应的实现方法,下面一一列举: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好了,关于文件夹复制的方法你可以根据自己的习惯选择一种来实现你的程序。
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好了,关于文件夹复制的方法你可以根据自己的习惯选择一种来实现你的程序。
2015-08-08 · 知道合伙人数码行家
关注
展开全部
不用FSO的复制文件夹得方法
用API函数 SHFileOperation
以下是使用SHFileOperation删除复制移动文件的例子,可以复制文件夹
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
'wFunc 常数
'FO_COPY 把 pFrom 文件拷贝到 pTo。
Const FO_COPY = &H2
'FO_DELETE 删除 pFrom 中的文件(pTo 忽略)。
Const FO_DELETE = &H3
'FO_MOVE 把 pFrom 文件移动到 pTo。
Const FO_MOVE = &H1
'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
Private Sub Command1_Click()
'例子:
Dim SHFileOp As SHFILEOPSTRUCT
' 拷贝
SHFileOp.wFunc = FO_COPY
SHFileOp.pFrom = "d:\MASM611"
SHFileOp.pTo = "c:\MASM611"
SHFileOp.fFlags = FOF_NOCONFIRMMKDIR
Call SHFileOperation(SHFileOp)
End Sub
或者用命令行
shell "cmd.exe /c xcopy "+chr(34)+"C:\新建文件夹 c:\aa /q /e" +chr(34)
用API函数 SHFileOperation
以下是使用SHFileOperation删除复制移动文件的例子,可以复制文件夹
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
'wFunc 常数
'FO_COPY 把 pFrom 文件拷贝到 pTo。
Const FO_COPY = &H2
'FO_DELETE 删除 pFrom 中的文件(pTo 忽略)。
Const FO_DELETE = &H3
'FO_MOVE 把 pFrom 文件移动到 pTo。
Const FO_MOVE = &H1
'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
Private Sub Command1_Click()
'例子:
Dim SHFileOp As SHFILEOPSTRUCT
' 拷贝
SHFileOp.wFunc = FO_COPY
SHFileOp.pFrom = "d:\MASM611"
SHFileOp.pTo = "c:\MASM611"
SHFileOp.fFlags = FOF_NOCONFIRMMKDIR
Call SHFileOperation(SHFileOp)
End Sub
或者用命令行
shell "cmd.exe /c xcopy "+chr(34)+"C:\新建文件夹 c:\aa /q /e" +chr(34)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-17
展开全部
你是想复制外部文件吗?语法 �0�2 FileCopy 源文件地址及名称 �0�2 ,目标地址及文件名
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-17
展开全部
开启一个命令行窗口,敲xcopy /?不用继续解释vb怎么调用执行命令行吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询