使用以下的 API , 得到与资源管理器相同的感觉!
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 TypePrivate 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例子:
Dim SHFileOp As SHFILEOPSTRUCT
' 删除
SHFileOp.wFunc = FO_DELETE
SHFileOp.pFrom = "c:\config.old" + Chr(0)
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION
Call SHFileOperation(SHFileOp)
' 删除多个文件
SHFileOp.wFunc = FO_DELETE
SHFileOp.pFrom = "c:\config.old" +Chr(0) + "c:\autoexec.old"+Chr(0)
SHFileOp.fFlags = FOF_ALLOWUNDO
Call SHFileOperation(SHFileOp)
' 拷贝
SHFileOp.wFunc = FO_COPY
SHFileOp.pFrom = "c:\t\*.*"
SHFileOp.pTo = "d:\t\*.*"
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMMKDIR
Call SHFileOperation(SHFileOp)
' 移动
SHFileOp.wFunc = FO_MOVE
SHFileOp.pFrom = "c:\config.old" + Chr(0)
SHFileOp.pTo = "d:\t"
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION
Call SHFileOperation(SHFileOp) 参见 FB016
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 TypePrivate 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例子:
Dim SHFileOp As SHFILEOPSTRUCT
' 删除
SHFileOp.wFunc = FO_DELETE
SHFileOp.pFrom = "c:\config.old" + Chr(0)
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION
Call SHFileOperation(SHFileOp)
' 删除多个文件
SHFileOp.wFunc = FO_DELETE
SHFileOp.pFrom = "c:\config.old" +Chr(0) + "c:\autoexec.old"+Chr(0)
SHFileOp.fFlags = FOF_ALLOWUNDO
Call SHFileOperation(SHFileOp)
' 拷贝
SHFileOp.wFunc = FO_COPY
SHFileOp.pFrom = "c:\t\*.*"
SHFileOp.pTo = "d:\t\*.*"
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMMKDIR
Call SHFileOperation(SHFileOp)
' 移动
SHFileOp.wFunc = FO_MOVE
SHFileOp.pFrom = "c:\config.old" + Chr(0)
SHFileOp.pTo = "d:\t"
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION
Call SHFileOperation(SHFileOp) 参见 FB016
解决方案 »
- 求资料:vb6应用程序退出流程(内部断后工作过程)
- VB WINSOCK控件问题
- 怎么样得到SQL查询语句内各字段所属表名及别字字段的原字段名(及通用查询模块讨论)
- 跳点寻路算法问题,这是不是属于多叉树?大家帮忙看看
- vb中api的调用问题,参数类型怎么匹配?
- 请教各位高手,在VB中如何设置堆栈空间大小?
- 怎样在evb中使用module
- 急!急!急! 阿紧急求助!!!!图片如何正确显示!!!!
- 如何比较含有字母和数字的字符串的大小?
- 高手请进!下面的问题怎么做?
- 如何将编写在一个Excel工作表中的类模块应用于所有的Excel表格中?(在线等待!!!)
- 请问谁有播放rm文件格式与WMA文件格式的控件(最好是类)吗?
Option ExplicitPrivate Declare Function SHFileOperation Lib "shell32.dll" (lpFileOp As SHFILEOPSTRUCT) As Long
Public 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
End Type
Public Const FO_DELETE = &H3 '删除---Flags0
Public Const FO_MOVE = &H1 '移动---Flags0
Public Const FOF_ALLOWUNDO = &H40 '删入回收站--Flags1
Public Const FOF_MULTIDESTFILES = &H1
Public Const FOF_NOCONFIRMATION = &H10'不出现确认对话框与进度框
Public Const FO_COPY = &H2 '拷贝---Flags0
Public Const FOF_NOCONFIRMMKDIR = &H200'删除/移动/拷贝/重命名文件与目录
Public Sub DelMovF(ByVal Spathk As String, ByVal Flags0 As Long, ByVal Flags1 As Long, ByVal TargetFolder As String)
'Spathk---- 等处理的源
'Flags0----功能参数即取FO_COPY时为拷贝FO_DELETE时为删除
'Flags1----状态参数是否删入回收站等如要删入回收站取FOF_ALLOWUNDO
'TargetFolder----目标路径删除时为空字符串即可Dim fypOperation As SHFILEOPSTRUCT
Dim Rest As Long
If Spathk = "" Then Exit Sub
With fypOperation
.wFunc = Flags0
.pFrom = Spathk & vbNullChar '源
.fFlags = Flags1
.pTo = TargetFolder & vbNullChar & vbNullChar '目标
End With
Rest = SHFileOperation(fypOperation)
End Sub引用例子如下:删除"F:\VCSelfExample\zhx1“目录下的所有的文件入回收站:
DelMovF "F:\VCSelfExample\zhx1\*", FO_DELETE, FOF_ALLOWUNDO , ""删除目录及其下文件"F:\VCSelfExample\zhx1“DelMovF "F:\VCSelfExample\zhx1", FO_DELETE, FOF_ALLOWUNDO , ""