首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB 怎样搜索并且删除文件夹及文件夹下面的所有文件?解决方法

2012-01-20 
VB 怎样搜索并且删除文件夹及文件夹下面的所有文件?比如说要删除文件夹1245564及下面的文件夹和文件.事先

VB 怎样搜索并且删除文件夹及文件夹下面的所有文件?
比如说要删除文件夹1245564及下面的文件夹和文件.事先不知道文件夹1245564的路径.


[解决办法]
SHFileOperation

函数状态: 正式函数

函数功能描述:文件操作,与 Shell 的动作相同.

函数原型:

WINSHELLAPI int WINAPI SHFileOperation (LPSHFILEOPSTRUCT lpFIleOp);

声明:
Private Declare Function SHFileOperation Lib "shell32.dll " Alias "SHFileOperationA " (lpFileOp As SHFILEOPSTRUCT) As Long

参数:
Private Type SHFILEOPSTRUCT
    HWND       hwnd;  //父窗口句柄
    UINT       wFunc;  //要执行的动作
    LPCTSTR      pFrom;  //源文件路径,可以是多个文件
    LPCTSTR      pTo;   //目标路径,可以是路径或文件名
    FILEOP_FLAGS   fFlags; //标志,附加选项
    BOOL       fAnyOperationsAborted; //是否可被中断
    LPVOID      hNameMappings;     //文件映射名字,可在其它 Shell 函数中使用
    LPCTSTR      lpszProgressTitle;   //只在 FOF_SIMPLEPROGRESS 时,指定对话框的标题。
End Type

wFunc 可以为:
Const FO_MOVE = &H1    移动文件
Const FO_COPY = &H2    复制文件
Const FO_DELETE = &H3   删除文件,只使用 pFrom
Const FO_RENAME = &H4   文件重命名

fFlags可以为:
Const FOF_CREATEPROGRESSDLG = &H0    //
Const FOF_MULTIDESTFILES = &H1      //pTo 指定了多个目标文件,而不是单个目录
Const FOF_CONFIRMMOUSE = &H2
Const FOF_SILENT = &H4          // 不显示一个进度对话框
COnst FOF_RENAMEONCOLLISION = &H8    // 碰到有抵触的名字时,自动分配前缀
Const FOF_NOCONFIRMATION = &H10     // 不对用户显示提示
Const FOF_WANTMAPPINGHANDLE = &H20    // 填充 hNameMappings 字段,必须使用 SHFreeNameMappings 释放
Const FOF_ALLOWUNDO = &H40        // 允许撤销
Const FOF_FILESONLY = &H80        // 使用 *.* 时, 只对文件操作
Const FOF_SIMPLEPROGRESS = &H100     // 简单进度条,意味者不显示文件名。
Const FOF_NOCONFIRMMKDIR = &H200     // 建新目录时不需要用户确定
Const FOF_NOERRORUI = &H400       // 不显示出错用户界面
Const FOF_NOCOPYSECURITYATTRIBS = &H800 // 不复制 NT 文件的安全属性

返回值:
函数成功返回 0 ,失败返回非 0 。

详细说明:
函数中参数类型为一个LPSHFILEOPSTRUCT结构,它包含有进行文件操作的各种信息,在这个结构中,hWnd是指向发送消息的窗口句柄,pFrom与pTo是进行文件操作的源文件名和目标文件名,它包含文件的路径,对应单个文件的路径字符串,或对于多个文件,必须以NULL作为字符串的结尾或文件路径名之间的间隔,否则在程序运行的时候会发生错误。另外,pFrom和pTo都支持通配符*和?。

wFunc 是结构中的一个非常重要的成员,它代表着函数将要进行的操作类型。

使用该函数进行文件拷贝、移动或删除时,如果需要的时间很长,则程序会自动在进行的过程中出现一个无模式的对话框(Windows操作系统提供的文件操作对话框),用来显示执行的进度和执行的时间,以及正在拷贝、移动或删除的文件名,此时结构中的成员lpszProgressTitle显示此对话框的标题。fFlags是在进行文件操作时的过程和状态控制标识。

热点排行