VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 自动出现动画、进度和确认的文件操作
发表评论(0)作者:, 平台:, 阅读:11485, 日期:2000-03-12
自动出现动画、进度和确认的文件操作 98-8-29

使用以下的 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 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


例子:

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)