|
|||||
<このサンプルの概要> このサンプルの仕様は、タイトルそのままです。プログラムで普通にファイル削除すると 「ごみ箱」には移動されず本当に削除されてしまうので、大事なデータを失ってしまう事 があります。その為、「ごみ箱」へ移動するプログラムが必要になります。 ' ファイル操作用のAPI----------------------------------------------------- Public Type SHFILEOPSTRUCT hWnd As Long wFunc As Long pFrom As String pTo As String fFlags As Integer fAnyOperationsAborted As Boolean hNameMappings As Long lpszProgressTitle As String End Type Public Declare Function SHFileOperation Lib "shell32" _ Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long Private Const FO_DELETE = &H3& ' 削除 Private Const FO_COPY = &H2 ' コピー Private Const FO_MOVE = &H1 ' 移動 Private Const FO_RENAME = &H4 ' ファイル名変更 Private Const FOF_ALLOWUNDO = &H40& ' ごみ箱へ Private Const FOF_NOCONFIRMATION = &H10& ' 確認ダイアログを表示しなし Private Const FOF_NOERRORUI = &H400& ' エラーダイアログを表示しない Private Const FOF_MULTIDESTFILES = &H1& ' 複数ファイルを指定する ' ------------------------------------------------------------------------ ' ' 関数名 : RecyclerDelete ' 返り値 : 無し ' 引き数 : myForm (i) : 親フォーム(meを指定する) ' : fileName(i) : ごみ箱へ移動するファイルまたはフォルダ ' 機能説明 : ファイルやフォルダをごみ箱へ移動する ' 備考 : ' 著作権 : Copyright(C) 2007 のん All right reserved ' Public Function RecyclerDelete(myForm As Form, fileName As String) As Long On Error GoTo ErrHandler RecyclerDelete = -1 Dim SFOP As SHFILEOPSTRUCT SFOP.pFrom = fileName SFOP.hWnd = myForm.hWnd SFOP.wFunc = FO_DELETE SFOP.fFlags = FOF_ALLOWUNDO + FOF_NOERRORUI + FOF_NOCONFIRMATION RecyclerDelete = SHFileOperation(SFOP) Exit Function ErrHandler: MsgBox Err.Description Exit Function End Function |