VB.net 2010 视频教程 VB.net 2010 视频教程 VB.net 2010 视频教程
当前位置:
首页 > 编程开发 > vb >
  • vb教程之自动出现动画、进度和确认的文件操作

  • 2017-09-19 21:05 来源:未知
使用以下的 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 

自动出现动画、进度和确认的文件操作 
================================================================== 
使用以下的 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
相关教程