急:请问怎样把"目录a"下的所有文件和目录拷贝到"目录b"下,其中"目录a"和"目录b"为字符串

CACACAW 2002-12-04 03:07:33
谢谢!!不要用shell
...全文
37 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
CACACAW 2002-12-05
  • 打赏
  • 举报
回复
Dim fso As FileSystemObject
dim strDir As String
strDir = "d:\bp\" & Frame3.Caption
fso.CopyFolder "A:", strDir, True

这样也不行呀?请看看.
dengyin2000 2002-12-05
  • 打赏
  • 举报
回复
filecopy "a:\*.*" , "b:\*.*
ww_wyc 2002-12-05
  • 打赏
  • 举报
回复
程序已经发送给你了
lihonggen0 2002-12-05
  • 打赏
  • 举报
回复

如何用程序来Delete Copy Move Rename File/Directory

作者: 王国荣 

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 ' only used if FOF_SIMPLEPROGRESS
End Type
'wFunc 的设定值
'FO_COPY Copies the files specified by pFrom to the location specified by pTo.
'FO_DELETE Deletes the files specified by pFrom (pTo is ignored).
'FO_MOVE Moves the files specified by pFrom to the location specified by pTo.
'FO_RENAME Renames the files specified by pFrom.

'fFlag的设定
'FOF_ALLOWUNDO Preserves undo information, if possible.
'FOF_FILESONLY Performs the operation only on files if a wildcard filename
' (*.*) is specified.
'FOF_MULTIDESTFILES Indicates that the pTo member specifies multiple destination
' files (one for each source file) rather than one directory where
' all source files are to be deposited.
'FOF_NOCONFIRMATION Responds with "yes to all" for any dialog box that is displayed.
'FOF_NOCONFIRMMKDIR Does not confirm the creation of a new directory if
' the operation requires one to be created.
'FOF_RENAMEONCOLLISION Gives the file being operated on a new name (such as
' "Copy #1 of...") in a move, copy, or rename operation
' if a file of the target name already exists.
'FOF_SILENT Does not display a progress dialog box.
'FOF_SIMPLEPROGRESS Displays a progress dialog box, but does not show the
' filenames.
'FOF_WANTMAPPINGHANDLE Fills in the hNameMappings member. The handle must be
' freed by using the SHFreeNameMappings function.

Const FO_MOVE = &H1
Const FO_COPY = &H2
Const FO_DELETE = &H3
Const FOF_NOCONFIRMATION = &H10
Const FOF_NOCONFIRMMKDIR = &H200
Const FOF_ALLOWUNDO = &H40
Const FOF_SILENT = &H4


Private Declare Function SHFileOperation Lib "shell32.dll" Alias _
"SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

'删除 test目录及其底下的子目录到资源回收桶
Private Sub Command1_Click()
Dim SHFileOp As SHFILEOPSTRUCT

SHFileOp.wFunc = FO_DELETE
SHFileOp.pFrom = "c:\test" + Chr(0)
'不出现档案删除的动态AVI,且不Confirm
SHFileOp.fFlags = FOF_SILENT + FOF_ALLOWUNDO + FOF_NOCONFIRMATION
'若没有 FOF_ALLOWUNDO 则不会到资源回收桶
Call SHFileOperation(SHFileOp)
End Sub

'同时删除多档到资源回收桶
Private Sub Command2_Click()
Dim SHFileOp As SHFILEOPSTRUCT
Dim Files As String
'Files = "c:\test.txt" + Chr(0)
Files = "c:\test1.txt" + Chr(0) + "c:\test2.txt" + Chr(0) + _
"c:\test3.txt" + Chr(0)
SHFileOp.wFunc = FO_DELETE
SHFileOp.pFrom = Files
'删至资源回收桶,且不Confirm
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION
Call SHFileOperation(SHFileOp)
End Sub

'将 c:\temp 整个目录复制到 c:\temp2
Private Sub Command3_Click()
Dim SHFileOp As SHFILEOPSTRUCT

SHFileOp.wFunc = FO_COPY
SHFileOp.pFrom = "c:\temp\*.*"
SHFileOp.pTo = "c:\temp2\*.*"
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMMKDIR
Call SHFileOperation(SHFileOp)
End Sub

'将 c:\test4.txt 快速移到 c:\temp 目录
Private Sub Command4_Click()
Dim SHFileOp As SHFILEOPSTRUCT

SHFileOp.wFunc = FO_MOVE
SHFileOp.pFrom = "c:\test4.txt" + Chr(0)
SHFileOp.pTo = "c:\temp"
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION
Call SHFileOperation(SHFileOp)
End Sub



 


CACACAW 2002-12-05
  • 打赏
  • 举报
回复
yaoya
ww_wyc 2002-12-05
  • 打赏
  • 举报
回复
用API,我有源代码呀,要吗。
renguangdong 2002-12-04
  • 打赏
  • 举报
回复
"d:\bp" & Frame3.Caption


有问题吧?
CACACAW 2002-12-04
  • 打赏
  • 举报
回复
Set fso = New FileSystemObject
fso.CopyFolder "a:\", "d:\bp" & Frame3.Caption, True
为什么报错?"无效的过程调用或参数"
of123 2002-12-04
  • 打赏
  • 举报
回复
例子:
引用microsoft scripting runtime

Dim fso As FileSystemObject
fso.CopyFolder "目录a", "目录b", true '如果目录b存在,覆盖。
of123 2002-12-04
  • 打赏
  • 举报
回复
CopyFolder 方法


描述

从一个地方递归地复制一个文件夹到另一个地方。

语法

object.CopyFolder source, destination[, overwrite]

CopyFolder 方法语法有如下几部分:

部分 描述
Object 必需的。始终为一个 FileSystemObject 的名字。
source 必需的。指明一个或多个被复制文件夹的字符串文件夹说明,可以包括通配符。
destination 必需的。指明 source 中被复制文件夹和子文件夹的接受端的字符串,不允许有通配符。
overwrite 选项的。Boolean 值,它表示已存在的文件夹是否被覆盖。如果为 True,文件被覆盖。如果为 False,文件不被覆盖。缺省值为 True。


说明

通配符仅可用于 source 参数的最后一个路径部件。例如你可以在下面情况使用它:

FileSystemObject.CopyFolder "c:\mydocuments\letters\*", "c:\tempfolder\"

但不能在下面情况使用它:

FileSystemObject.CopyFolder "c:\mydocuments\*\*", "c:\tempfolder\"

如果 source 包含通配符或 destination 以路径分隔符(\)为结尾,则认为 destination 是一个已存在的文件夹,在其中复制相匹配的文件夹和子文件夹。否则认为 destination 是一个要创建的文件夹的名字。不论何种情况,当复制一个文件夹时,可能发生四种事件。

如果 destination 不存在,source 文件夹和它所有的内容得到复制。这是通常的情况。


如果 destination 是一个已存在的文件,则发生一个错误。


如果 destination 是一个目录,它将尝试复制文件夹和它所有的内容。如果一个包含在 source 的文件已在 destination 中存在,当 overwrite 为 False 时发生一个错误,否则它将尝试覆盖这个文件。


如果 destination 是一个只读目录,当尝试去复制一个已存在的只读文件到此目录并且 overwrite为 False 时,则发生一个错误。
如果 source 使用的通配符不能和任何文件夹匹配,也发生一个错误。

CopyFolder 方法停止在它遇到的第一个错误上。不要尝试回卷错误发生前所做的任何改变。
CACACAW 2002-12-04
  • 打赏
  • 举报
回复
请帮忙
CACACAW 2002-12-04
  • 打赏
  • 举报
回复
老大,能否给个例子,我是新手,谢谢
OFFICE之门 2002-12-04
  • 打赏
  • 举报
回复
用FSO,检查目录下是否有子目录,如果是文件就用
FILE COPYFILE,DESTFILE
如果是文件夹,就进去再COPY

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧