程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 如何用程序來Delete Copy Move Rename File/Directory

如何用程序來Delete Copy Move Rename File/Directory

編輯:VB綜合教程

  

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 ' only used if FOF_SIMPLEPROGRESS
End Type
'wFunc 的設定值
'FO_COPY   Copies the files specified by pFrom to the location specified by pTo.
'FO_DELETE  Deletes the files specified by pFrom (pTo is ignored).
'FO_MOVE   Moves the files specified by pFrom to the location specified by pTo.
'FO_RENAME  Renames the files specified by pFrom.
'fFlag的設定
'FOF_ALLOWUNDO      Preserves undo information, if possible.
'FOF_FILESONLY      Performs the operation only on files if a wildcard filename
'            (*.*) is specified.
'FOF_MULTIDESTFILES   Indicates that the pTo member specifies multiple destination
'            files (one for each source file) rather than one directory where
'            all source files are to be deposited.
'FOF_NOCONFIRMATION   Responds with "yes to all" for any dialog box that is displayed.
'FOF_NOCONFIRMMKDIR   Does not confirm the creation of a new directory if
'            the operation requires one to be created.
'FOF_RENAMEONCOLLISION  Gives the file being operated on a new name (such as
'            "Copy #1 of...") in a move, copy, or rename operation
'            if a file of the target name already exists.
'FOF_SILENT       Does not display a progress dialog box.
'FOF_SIMPLEPROGRESS   Displays a progress dialog box, but does not show the
'            filenames.
'FOF_WANTMAPPINGHANDLE  Fills in the hNameMappings member. The handle must be
'            freed by using the SHFreeNameMappings function.
Const FO_MOVE = &H1
Const FO_COPY = &H2
Const FO_DELETE = &H3
Const FOF_NOCONFIRMATION = &H10
Const FOF_NOCONFIRMMKDIR = &H200
Const FOF_ALLOWUNDO = &H40
Const FOF_SILENT = &H4
Private Declare Function SHFileOperation Lib "shell32.dll" Alias _
        "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
'刪除 test目錄及其底下的子目錄到資源回收桶
Private Sub Command1_Click()
  Dim SHFileOp As SHFILEOPSTRUCT
  SHFileOp.wFunc = FO_DELETE
  SHFileOp.pFrom = "c:\test" + Chr(0)
  '不出現檔案刪除的動態AVI,且不Confirm
  SHFileOp.fFlags = FOF_SILENT + FOF_ALLOWUNDO + FOF_NOCONFIRMATION
  '若沒有 FOF_ALLOWUNDO 則不會到資源回收桶
  Call SHFileOperation(SHFileOp)
End Sub
'同時刪除多檔到資源回收桶
Private Sub Command2_Click()
  Dim SHFileOp As SHFILEOPSTRUCT
  Dim Files As String
  'Files = "c:\test.txt" + Chr(0)
  Files = "c:\test1.txt" + Chr(0) + "c:\test2.txt" + Chr(0) + _
      "c:\test3.txt" + Chr(0)
  SHFileOp.wFunc = FO_DELETE
  SHFileOp.pFrom = Files
  '刪至資源回收桶,且不Confirm
  SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION
  Call SHFileOperation(SHFileOp)
End Sub
'將 c:\temp 整個目錄復制到 c:\temp2
Private Sub Command3_Click()
  Dim SHFileOp As SHFILEOPSTRUCT
  SHFileOp.wFunc = FO_COPY
  SHFileOp.pFrom = "c:\temp\*.*"
  SHFileOp.pTo = "c:\temp2\*.*"
  SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMMKDIR
  Call SHFileOperation(SHFileOp)
End Sub
'將 c:\test4.txt 快速移到 c:\temp 目錄
Private Sub Command4_Click()
  Dim SHFileOp As SHFILEOPSTRUCT
  SHFileOp.wFunc = FO_MOVE
  SHFileOp.pFrom = "c:\test4.txt" + Chr(0)
  SHFileOp.pTo = "c:\temp"
  SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION
  Call SHFileOperation(SHFileOp)
End Sub

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved