ゴミ箱にファイルを移動するには

ゴミ箱にファイルを移動してみます。
キーワードは「SHFileOperation()関数」です。
SHFileOperation()関数はファイルを削除・コピー・移動する関数です。
この関数は面白い事に「ゴミ箱」を指定することができます。
また、使い方によってはファイルを複数の位置に同時にコピーすることができたりします。

下のプログラムではファイルをゴミ箱に移動するときに
確認のダイアログが出現しないようにしています。
実行中の様子

Private Sub Command1_Click()
    Dim lpFileOp As SHFILEOPSTRUCT
    
    With Me.CommonDialog1
        .Filter = "*.*|*.*"
        .DialogTitle = "ゴミ箱に移動するファイル名を選択してください"
        .ShowOpen                           'ファイル選択ダイアログボックスを開く
        If .filename <> "" Then
            'ファイルが選択された場合
            Me.Text1.Text = .filename
            
            'デスクトップにコピー
            lpFileOp.hWnd = Me.hWnd
            lpFileOp.wFunc = FO_DELETE
            lpFileOp.pFrom = .filename
            lpFileOp.pTo = ""
            lpFileOp.fFlags = FOF_ALLOWUNDO Or FOF_SILENT Or FOF_NOCONFIRMATION
            Call SHFileOperation(lpFileOp)
            
            MsgBox "ゴミ箱にファイルを移動しました"
        End If
    End With
End Sub
ダウンロード