7.ファイル・フォルダーをごみ箱へ |
1.ファイル・フォルダーをごみ箱へ 2. 3. 4. 5. 6. 7. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6) Option :[Option Explicit] 参照設定: 参照設定方法参照 使用 API:SHFileOperation その他 :このサンプルは、 Win32 APIを使用しておりますので、ある程度Win32 API が理解できる方がお使い下さい。 : |
1.ファイル・フォルダーをごみ箱へ |
Option Explicit 'SampleNo=098 WindowsXP VB6.0(SP5) 2002.05.18 'ファイル操作(コピー・削除・移動・名前を変更)を行う(P1200) Private Declare Function SHFileOperation Lib "shell32.dll" _ Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long '動作方法を指定する構造体 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 End Type 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& '複数ファイル指定 Private Sub sFileDelete(meForm As Form, DelFile As String) '************************************************************** '* SHFileOperation関数を呼び出しファイルをごみ箱に送る * '* meForm = ダイアログを表示するForm * '* DelFile = 削除するファイル名(Path付) * '* 複数のファイルを指定する場合vbNullCharで区切り * '* 最後は二つのvbNullCharで終わる * '************************************************************** On Error Resume Next Dim lpFileOp As SHFILEOPSTRUCT Dim Result As Long Dim MyFlag As Long '指定方法はお好みで設定して下さい。 MyFlag = FOF_ALLOWUNDO 'ごみ箱へ MyFlag = MyFlag + FOF_NOCONFIRMATION '確認しない MyFlag = MyFlag + FOF_MULTIDESTFILES '複数ファイル MyFlag = MyFlag + FOF_NOERRORUI 'エラーのダイアログを非表示 ' ファイル操作に関する情報を指定 With lpFileOp .hWnd = meForm.hWnd ' ダイアログの親ウィンドウハンドルを指定 .wFunc = FO_DELETE ' 削除を指定 .pFrom = DelFile ' 削除するディレクトリを指定 ' .pTo = 操作先のファイル名・ディレクトリ名 .fFlags = MyFlag '動作方法を指定 End With ' ファイル操作を実行 Result = SHFileOperation(lpFileOp) End Sub Private Sub Command1_Click() 'Dim MyFile As String '複数のファイルを指定する場合vbNullCharで区切り '最後は二つのvbNullCharで終わる 'フォルダーごと削除する場合はフォルダー名を指定する 'MyFile = "C:\MyFolder\MyFile1.Txt" & vbNullChar & _ "C:\MyFolder\MyFile2.Txt" & vbNullChar & vbNullChar '削除するフォルダーを用意しておいて下さい。 Call sFileDelete(Me, "C:\test") End Sub |
2. |
3. |
4. |
5. |
6. |
7. |
検索キーワード及びサンプルコードの別名(機能名) |