VB 如何复制文件夹?
我要把本机一个文件夹(及其内容)从C盘拷到D盘,如目标地方有一样的文件夹,覆盖它即可,帮我解决下面两个问题其中之一,我即可结帖.1.我看到一本书是这样拷文件夹的.setc...
我要把本机一个文件夹(及其内容)从C盘拷到D盘,如目标地方有一样的文件夹,覆盖它即可,帮我解决下面两个问题其中之一,我即可结帖.
1.我看到一本书是这样拷文件夹的.
set cp_fso=createobject("scripting.filesystemobject")
on error resume next
cp_fso.copyfolder trim(text1.text),trim(text2.text),true
用这个是要开始运行注册regsvr scrrun.dll,注册这个过程可以用代码完成吗?这样我用可以把它集成在一个按钮里面了.
2.上面的方法我觉得不是太好,因为我们这里的电脑很多电脑都是没有权限注册的,有其他办法可以拷贝文件夹也可以.
如能解决问题,定在结帖前增加50悬赏分,结帖后追加50悬赏分,共220分以示谢意.
问题更正:regsvr32 scrrun.dll
注册刚刚试了,好象这个可以,Shell "regsvr32 scrrun.dll",如果可以拷贝文件夹又不用注册就好了.
kmlxk你好,你的方法提示编译错误:Byref参数类型不符,语句停在call SHFileoPeration(SHFileOp). 展开
1.我看到一本书是这样拷文件夹的.
set cp_fso=createobject("scripting.filesystemobject")
on error resume next
cp_fso.copyfolder trim(text1.text),trim(text2.text),true
用这个是要开始运行注册regsvr scrrun.dll,注册这个过程可以用代码完成吗?这样我用可以把它集成在一个按钮里面了.
2.上面的方法我觉得不是太好,因为我们这里的电脑很多电脑都是没有权限注册的,有其他办法可以拷贝文件夹也可以.
如能解决问题,定在结帖前增加50悬赏分,结帖后追加50悬赏分,共220分以示谢意.
问题更正:regsvr32 scrrun.dll
注册刚刚试了,好象这个可以,Shell "regsvr32 scrrun.dll",如果可以拷贝文件夹又不用注册就好了.
kmlxk你好,你的方法提示编译错误:Byref参数类型不符,语句停在call SHFileoPeration(SHFileOp). 展开
2个回答
展开全部
我又修改了下代码,添加个按钮,粘贴代码后就可用了。
====================
不用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)
====================
不用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)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询