如何遍历整个目录

原创 2004年07月16日 19:43:00
#include <windows.h>
#include <shlobj.h>
//浏览目录.
void BrowseFolder( void )
{
TCHAR path[MAX_PATH];
BROWSEINFO bi = { 0 };
bi.lpszTitle = ("递归调用所有目录");
LPITEMIDLIST pidl = SHBrowseForFolder ( &bi );
if ( pidl != 0 )
{
// 获取目录路径
SHGetPathFromIDList ( pidl, path );
//设置为当前路径
SetCurrentDirectory ( path );
//搜索所有子目录
SearchFolder( path );
// 释放内存
IMalloc * imalloc = 0;
if ( SUCCEEDED( SHGetMalloc ( &imalloc )) )
{
imalloc->Free ( pidl );
imalloc->Release ( );
}
}
//搜索其下所有子目录及文件.
void SearchFolder( TCHAR * path )
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind;

TCHAR filename[ MAX_PATH + 256 ];
TCHAR pathbak[ MAX_PATH ];
//复制初始用户选择目录
strcpy( pathbak, path );
//寻找第一个文件
hFind = FindFirstFile ( "*.*", &FindFileData );
//搜索所有文件及子目录
do
{
if ( hFind != INVALID_HANDLE_VALUE )
{
//如果是当前目录或父目录,跳过
if ( ! ( strcmp( FindFileData.cFileName, "." ) ) ||
! ( strcmp( FindFileData.cFileName, ".." ) ) )
{
continue;
}

//恢复初始用户选择目录
strcpy( path, pathbak );

//列出所有发现的文件
sprintf( path, "%s//%s", path, FindFileData.cFileName );
//如果 SetCurrentDirectory
成功的话,则它是一个目录,递归调用继续搜索子目录
if ( ( SetCurrentDirectory( path ) ) )
{
SearchFolder( path );
}

          //插入文件及路径名到列表框m_listbox_hwnd中
           SendMessage( m_listbox_hwnd, LB_ADDSTRING, 0, path );
//<--INSERT WHAT YOU WANT DONE HERE!
}
}
while ( FindNextFile ( hFind, &FindFileData ) && hFind !=
INVALID_HANDLE_VALUE );
FindClose ( hFind );
}

目录遍历攻击详解

对于一个安全的Web服务器来说,对Web内容进行恰当的访问控制是极为关键的。目录遍历是Http所存在的一个安全漏洞,它使得攻击者能够访问受限制的目录,并在Web服务器的根目录以外执行命令。   ...
  • metheir
  • metheir
  • 2017年01月08日 22:29
  • 1016

java通过ftp上传、下载文件,遍历文件目录

import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; ...
  • huikaichedeyeren
  • huikaichedeyeren
  • 2015年03月12日 15:12
  • 1824

目录遍历攻击

原文地址:https://en.wikipedia.org/wiki/Directory_traversal_attack【译】目录遍历攻击一次目录遍历攻击(directory traversal a...
  • yuhk231
  • yuhk231
  • 2017年02月11日 22:13
  • 3424

目录遍历攻击详解

对于一个安全的Web服务器来说,对Web内容进行恰当的访问控制是极为关键的。目录遍历是Http所存在的一个安全漏洞,它使得攻击者能够访问受限制的目录,并在Web服务器的根目录以外执行命令。   We...
  • xing_anksh
  • xing_anksh
  • 2013年12月27日 16:19
  • 14941

遍历所有磁盘根目录及次级目录,查找目标文件夹

需求:         目标文件夹:    包含Task.rec文件。         假定:              目标文件夹只存放在磁盘根目录及次级目录下。         参数:  ...
  • fengsuinanhan
  • fengsuinanhan
  • 2016年07月26日 14:34
  • 695

Web 目录枚举与遍历漏洞解决

“目录枚举漏洞”解决方法一、名词解释 网站目录枚举漏洞:指黑客利用非法攻击手段扫描符合“8.3”命名原则的目录与文件。二、验证工具:scanner-compiled三、验证方法 图 1 四、...
  • hexieshangwang
  • hexieshangwang
  • 2015年11月19日 10:37
  • 5923

linux目录操作及递归遍历目录

目录相关函数介绍 //mkdir 函数创建目录 #include #include int mkdir(const char *pathname, mode_t mode); //rmdir...
  • huangshanchun
  • huangshanchun
  • 2015年07月30日 09:20
  • 2205

什么是目录遍历攻击及如何防护

前几日研究某Web项目源代码,使用的是ThinkPHP框架,根目录下有个www目录,存放项目模块的入口文件。顿时茫然,本人一般直接把入口文件放在web根目录,而这里却是www目录,不知www目录是何作...
  • Smallearth
  • Smallearth
  • 2014年10月24日 10:51
  • 2545

JDK7之新的遍历目录API

jdk7之前,我们遍历目录,一般都是判断当前文件是普通文件和目录文件,从而递归的遍历其子目录,利用file 过滤,过滤出符合我们需要的文件。     这种都是需要我们显示的写递归程序的,不过JDK7...
  • doctor_who2004
  • doctor_who2004
  • 2015年08月30日 16:26
  • 1470

C/C++遍历文件和目录

C/C++遍历文件夹要用到_finddata_t结构体,函数_findfirst、_findnext和_fineclose,它们都定义在头文件中,下面介绍具体如何使用。   结构体_finddat...
  • cbbbc
  • cbbbc
  • 2015年01月22日 11:07
  • 4135
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何遍历整个目录
举报原因:
原因补充:

(最多只允许输入30个字)