|
ファイルやフォルダをごみ箱へ移動するサンプル(VB6)

|
<このサンプルの概要>
このサンプルの仕様は、タイトルそのままです。プログラムで普通にファイル削除すると
「ごみ箱」には移動されず本当に削除されてしまうので、大事なデータを失ってしまう事
があります。その為、「ごみ箱」へ移動するプログラムが必要になります。
' ファイル操作用の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