VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

リンク元へ戻ります。 フォルダー関係のメニュー
1.FileSystemObject のフォルダーに関するメソッド・プロパティについて
2.フォルダーに関する基本的なワンポイントサンプル集
3.フォルダー(ディレクトリ)に関するパス操作色々
4.指定のフォルダーのファイル数・サブフォルダー数・総バイト数を取得
5.指定のフォルダーをエクスプローラーで表示
6.深い階層のフォルダーを一発で作成する
7.ファイル・フォルダーをごみ箱へ
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.その他、当サイト内に掲載のフォルダーに関するサンプル


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.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)





このページのトップへ移動します。