Функция SHFileOperation

Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As Byte) As Long

Платформа.

SHFileOperation копирует, перемещает, переименовывает или удаляет объект в файловой системе. Вместо незаметного выполнения действия, как это делают обычные функции API, SHFileOperation использует подсказки диалогового окна оболочки. Эта функция - также хороший способ послать один или большее количество файлов в Мусорную корзину вместо их удаления.

Возвращаемое значение
В случае ошибки функция возвращает значение,отличное от нуля. В успешном случае возвращается 0.

Параметры
lpFileOp
Структура SHFILEOPSTRUCT , скопированный должным образом в массив байтов, который определяет операцию файла для выполнения. Это может также получать некоторую обратную связь от функции.
Пример

' Удаляем файлы в корзину
'Поместите Common Dialog Box с именем CDBox.
'  (Project->Components
'   выберите Microsoft Common Dialog)
Private Type SHFILEOPSTRUCT
    hWnd As Long
    wFunc As Long
    pFrom As String
    pTo As String
    fFlags As Integer
    fAborted As Boolean
    hNameMaps As Long
    sProgress As String
End Type
Private Const FO_DELETE = &H3
Private Const FOF_ALLOWUNDO = &H40
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Private Sub Form_Load()
    Dim SHFileOp As SHFILEOPSTRUCT
    'заголовок для диалогового окна
    CDBox.DialogTitle = "Сейчас будем удалять"
    'фильтр
    CDBox.Filter = "All Files (*.*)|*.*"
    'показываем диалог 'Open File' 
    CDBox.ShowOpen
    With SHFileOp
        'удаление файла
        .wFunc = FO_DELETE
        'выбор файла
        .pFrom = CDBox.filename
        'удаление в Корзину
        .fFlags = FOF_ALLOWUNDO
    End With
    'начинаем операцию удаления
    SHFileOperation SHFileOp
    MsgBox "Файл '" + CDBox.filename + "' был перемещен в Корзину !", vbInformation + vbOKOnly, App.Title
End Sub

Категория: Оболочка

В начало.