用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)
vb中复制文件用FileCopy 语句。
FileCopy 语句
复制一个文件。
语法
FileCopy source, destination
FileCopy 语句示例:
Private Sub Command1_Click()
Dim SourceFile, DestinationFile
SourceFile = "c:\10.txt" ' 指定源文件路径和名。
DestinationFile = "D:\DESTFILE" ' 指定目标路径和文件名。
FileCopy SourceFile, DestinationFile ' 将源文件的内容复制到目的文件中。
End Sub
第一个问题:
commondialog的控件名为Microsoft Common Dialog Control 6.0,文件名为comdlg32.ocx,如果没有,可在你的机器上搜索comdlg32.ocx,如果还没有,可到网上下载,放到Windows\system32目录下(不是必须,但放到该目录下VB可直接找到)。
第二个问题:
FileCopy 源文件名,目标文件名
其中源文件名为全路径,含盘符、目录,如:
FileCopy Replace(App.Path & "\file\战斗保存.txt", "\\", "\"), "d:\"
FileCopy "D:\file\战斗保存.txt", "d:\"
加上Replace是为了防止app.path为根目录,如果app.path为C:\,则App.Path & "\file\战斗保存.txt"为C:\\file\战斗保存.txt,俩\\,将出错。
在菜单栏 "工程"-->"部件" 找到并勾选 Microsoft Common Dialog Control x.0
FileCopy App.path & "\file\战斗保存.txt", "d:\"
1、在菜单栏中的 工程——部件 中添加
2、FileCopy("源文件名","目标文件名")