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