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