首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

SHFileOperation函数有关问题

2012-01-13 
SHFileOperation函数问题谢谢大家的回复,我改成这样,还是不行,程序执行不报错。就是不能实现拷贝操作。Publi

SHFileOperation函数问题
谢谢大家的回复,我改成这样,还是不行,程序执行不报错。   就是不能实现拷贝操作。  
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     '只有在     FOF_SIMPLEPROGRESS     时用    
End     Type    
'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    
 
Public     Declare     Function     SHFileOperation     Lib         "shell32.dll     "     Alias         "SHFileOperationA     "     (lpFileOp     As     SHFILEOPSTRUCT)     As     Long    
 
sub     main()    
frmmain.Show    
End     Sub    
 
Private     Sub     comstart_Click()    
 
Dim     SHFileOp     As     SHFILEOPSTRUCT    
 
SHFileOp.wFunc     =     FO_COPY    
SHFileOp.pFrom     =         "c:\测试用例.txt     "    
SHFileOp.pTo     =         "d:\     "    
SHFileOp.fFlags     =     FOF_ALLOWUNDO     +     FOF_NOCONFIRMMKDIR    


Call     SHFileOperation(SHFileOp)    
MsgBox     (     "ok     ")    
End     Sub    


[解决办法]
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 '只有在 FOF_SIMPLEPROGRESS 时用
End Type
'wFunc 常数
'FO_COPY 把 pFrom 文件拷贝到 pTo。
Public Const FO_COPY = &H2
'FO_DELETE 删除 pFrom 中的文件(pTo 忽略)。
Public Const FO_DELETE = &H3
'FO_MOVE 把 pFrom 文件移动到 pTo。
Public Const FO_MOVE = &H1

'fFlag 常数
'FOF_ALLOWUNDO 允许 Undo 。
Public Const FOF_ALLOWUNDO = &H40
'FOF_NOCONFIRMATION 不显示系统确认对话框。
Public Const FOF_NOCONFIRMATION = &H10
'FOF_NOCONFIRMMKDIR 不提示是否新建目录。
Public Const FOF_NOCONFIRMMKDIR = &H200
'FOF_SILENT 不显示进度对话框
Public Const FOF_SILENT = &H4

Public Declare Function SHFileOperation Lib "shell32.dll " (lpFileOp As SHFILEOPSTRUCT) As Long

Sub main()
frmmain.Show
End Sub


Private Sub comstart_Click()

Dim SHFileOp As SHFILEOPSTRUCT

SHFileOp.wFunc = FO_COPY
SHFileOp.pFrom = "c:\测试用例.txt "
SHFileOp.pTo = "d:\测试用例.txt "
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMMKDIR
Dim c As Long
c = SHFileOperation(SHFileOp)
MsgBox "ok "
End Sub

热点排行