打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
vb API实现复制,转移,删除文件与文件夹
userphoto

2011.02.27

关注
bas里写的:


Public Const FO_MOVE As Long = &H1
Public Const FO_COPY As Long = &H2
Public Const FO_DELETE As Long = &H3
Public Const FO_RENAME As Long = &H4
Public Const FOF_MULTIDESTFILES As Long = &H1
Public Const FOF_CONFIRMMOUSE As Long = &H2
Public Const FOF_SILENT As Long = &H4
Public Const FOF_RENAMEONCOLLISION As Long = &H8
Public Const FOF_NOCONFIRMATION As Long = &H10
Public Const FOF_WANTMAPPINGHANDLE As Long = &H20
Public Const FOF_CREATEPROGRESSDLG As Long = &H0
Public Const FOF_ALLOWUNDO As Long = &H40
Public Const FOF_FILESONLY As Long = &H80
Public Const FOF_SIMPLEPROGRESS As Long = &H100
Public Const FOF_NOCONFIRMMKDIR As Long = &H200

Type SHFILEOPSTRUCT
     hwnd As Long
     wFunc As Long
     pFrom As String
     pTo As String
     fFlags As Long
     fAnyOperationsAborted As Long
     hNameMappings As Long
     lpszProgressTitle As String
End Type

Declare Function SHFileOperation Lib "Shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

command1_click()

Dim result As Long, fileop As SHFILEOPSTRUCT
With fileop
        
        .hwnd = Me.hwnd
        .wFunc = FO_COPY
       .pFrom = Text4.Text & "\*.*" & vbNullChar & vbNullChar
         .pTo = "d:\ak" & vbNullChar & vbNullChar
        .fFlags = FOF_SIMPLEPROGRESS Or FOF_FILESONLY
End With
result = SHFileOperation(fileop)
MsgBox "完成"
Unload Me
If result <> 0 Then
        ' Operation failed
        'MsgBox Err.LastDllError
        MsgBox "未完成"
        Unload Me
Else
        If fileop.fAnyOperationsAborted <> 0 Then
                      MsgBox "Operation Failed"
         End If
End If

完成--------

 

API功能详解:

使用API函数SHFileOperation,这个函数可以同时拷贝、删除、改名或移动多个文件,甚至整个目录。如果你愿意,还可以显示相应的动画对话框,功能十分强大。SHFileOperation的参数是一个SHFILEOPSSTRUCT结构。这个结构中各成员的含义如下:

     - hwnd - 显示文件操作对话框的窗口句柄

     - wFunc - 表示要进行的操作,可以取以下值:

     - FO_COPY - 拷贝文件。所要拷贝的文件由pFrom成员指定,目的地址有pTo成员指定。

     - FO_DELETE - 删除pFrom指定的文件。(pTo 被忽略。)

     - FO_MOVE - 移动文件。所要移动的文件由pFrom成员指定,目的地址有pTo成员指定。

     - FO_RENAME - 改名pFrom指定的文件。

     - pFrom - 指定文件名的缓冲区的地址。必须以Chr(0)结尾。如果包括多个文件以Chr(0)分割。

     - pTo - 指定目的文件名或目录的缓冲区的地址。必须以Chr(0)结尾。如果使用了FOF_MULTIDESTFILES标志,可以包括多个文件名,文件名之间以Chr(0)分割。

     - fFlags - 标志:

     - FOF_ALLOWUNDO - 允许恢复

     - FOF_FILESONLY - 如果使用了*.*,只操作文件。

     - FOF_MULTIDESTFILES - pTo成员可以为多个目的文件。

     - FOF_NOCONFIRMATION - 不显示确认对话框。

     - FOF_NOCONFIRMMKDIR - 不确认是否建立目录。

     - FOF_NOERRORUI - 如果有错误,不显示用户界面。

     - FOF_RENAMEONCOLLISION - 如果目的文件已经存在,给要处理的文件一个新名字。

     - FOF_SILENT - 不显示进度对话框。

     - FOF_SIMPLEPROGRESS - 显示进度框,但不显示文件名。

     - fAnyOperationsAborted -如果用户退出,该成员为TRUE,否则为FALSE。

     - lpszProgressTitle - 进度框的标题,只有选择了FOF_SIMPLEPROGRESS标志才有效。 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VB操作文件夹的几个方法
Delphi复制自身自我复制
VC 复制移动删除重命名文件文件夹
VC下的目录文件的复制.(SHFileOperation)
函数ShFileOperation对文件的操作与注意事项
问与答5:如何使用VBA将文件或文件夹删除到回收站?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服