VB: 强行删除目录或文件

有一各强行删除函数,很厉害


Public Enum FO_Operation
    FO_MOVE = 1
    FO_COPY = 2
    FO_DELETE = 3
    FO_RENAME = 4
End Enum

Public Enum FOFlags
    FOF_MULTIDESTFILES = &H1      'Destination specifies multiple files
    FOF_SILENT = &H4              'Don't display progress dialog
    FOF_RENAMEONCOLLISION = &H8  'Rename if destination already exists
    FOF_NOCONFIRMATION = &H10    'Don't prompt user
    FOF_WANTMAPPINGHANDLE = &H20  'Fill in hNameMappings member
    FOF_ALLOWUNDO = &H40          'Store undo information if possible
    FOF_FILESONLY = &H80          'On *.*, don't copy directories
    FOF_SIMPLEPROGRESS = &H100    'Don't show name of each file
    FOF_NOCONFIRMMKDIR = &H200    'Don't confirm making any needed dirs
End Enum

Public 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 Long '  only used if FOF_SIMPLEPROGRESS
End Type
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

Private op As SHFILEOPSTRUCT

Public Sub DeleteFolder(sDeleteFolder As String, Optional Interface As Boolean = False)

    SetAttr sDeleteFolder, vbNormal
    With op
        .wFunc = FO_DELETE
        .pFrom = sDeleteFolder
        .fFlags = IIf(Interface = False, FOF_NOCONFIRMATION, FOF_NOCONFIRMATION And FOF_SILENT)
    End With
    SHFileOperation op

End Sub

'假如你要删除的目录是:"c:/temp",无论它有多少子目录,有多少文件,一样被删除,前提是目录已经存在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值