用递归做文件夹中所有文件的提取(感谢[titilima ]的文章)
2008-10-30 10:57
387 查看
头文件:
#pragma once
#include "afxcoll.h"
// CSeachFile
class CSeachFile : public CWnd
{
DECLARE_DYNAMIC(CSeachFile)
public:
CSeachFile();
void Start(CString rootPath);
CStringList GetFilesList();
CStringList plist;
virtual ~CSeachFile();
protected:
DECLARE_MESSAGE_MAP()
private:
CString path_;
};
文件中的Start方法就是递归函数,plist就是存储提取出来的文件名的集合类
// SeachFile.cpp : 实现文件
//
#include "stdafx.h"
#include "ImportExport.h"
#include "SeachFile.h"
#include "afxcoll.h"
// CSeachFile
IMPLEMENT_DYNAMIC(CSeachFile, CWnd)
CSeachFile::CSeachFile()
{
}
void CSeachFile::Start(CString rootPath)
{
//判断是否为跟目录
int len = rootPath.GetLength();
CString path(rootPath);
if(len == 3)
{
}
else
{
CString opr("//");
path = path + opr;
}
CString fname("*.*");
path = path + fname;
WIN32_FIND_DATA wfd;
HANDLE hFind = FindFirstFile(path,&wfd);
if(hFind == INVALID_HANDLE_VALUE)
return ;
do
{
if(wfd.cFileName[0] == '.')
continue ;
if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
//如果是目录就递归
TCHAR szFile[MAX_PATH];
wsprintf(szFile,L"%s//%s",rootPath,wfd.cFileName);
Start(szFile);
}
else
{
//是文件就存储
plist.AddTail(wfd.cFileName);
}
}while(FindNextFile(hFind,&wfd));
}
CSeachFile::~CSeachFile()
{
}
BEGIN_MESSAGE_MAP(CSeachFile, CWnd)
END_MESSAGE_MAP()
// CSeachFile 消息处理程序
#pragma once
#include "afxcoll.h"
// CSeachFile
class CSeachFile : public CWnd
{
DECLARE_DYNAMIC(CSeachFile)
public:
CSeachFile();
void Start(CString rootPath);
CStringList GetFilesList();
CStringList plist;
virtual ~CSeachFile();
protected:
DECLARE_MESSAGE_MAP()
private:
CString path_;
};
文件中的Start方法就是递归函数,plist就是存储提取出来的文件名的集合类
// SeachFile.cpp : 实现文件
//
#include "stdafx.h"
#include "ImportExport.h"
#include "SeachFile.h"
#include "afxcoll.h"
// CSeachFile
IMPLEMENT_DYNAMIC(CSeachFile, CWnd)
CSeachFile::CSeachFile()
{
}
void CSeachFile::Start(CString rootPath)
{
//判断是否为跟目录
int len = rootPath.GetLength();
CString path(rootPath);
if(len == 3)
{
}
else
{
CString opr("//");
path = path + opr;
}
CString fname("*.*");
path = path + fname;
WIN32_FIND_DATA wfd;
HANDLE hFind = FindFirstFile(path,&wfd);
if(hFind == INVALID_HANDLE_VALUE)
return ;
do
{
if(wfd.cFileName[0] == '.')
continue ;
if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
//如果是目录就递归
TCHAR szFile[MAX_PATH];
wsprintf(szFile,L"%s//%s",rootPath,wfd.cFileName);
Start(szFile);
}
else
{
//是文件就存储
plist.AddTail(wfd.cFileName);
}
}while(FindNextFile(hFind,&wfd));
}
CSeachFile::~CSeachFile()
{
}
BEGIN_MESSAGE_MAP(CSeachFile, CWnd)
END_MESSAGE_MAP()
// CSeachFile 消息处理程序
相关文章推荐
- 递归提取文件夹下所有叶子节点文件至指定文件夹
- 遍历递归目录下所有文件或文件夹
- 递归文件夹下所有文件
- Java递归删除文件夹中的所有文件
- 递归遍历磁盘下的某一文件夹中所有文件,并copy文件生成文件和带文件夹的文件
- ftp下载目录下所有文件及文件夹内(递归)
- Java中如何利用File类递归的遍历指定目录中的所有文件和文件夹
- Java编程---4、用递归的方法查询出某一文件夹下所有文件夹和文件的名称
- 递归求阶乘,递归找出文件夹下的所有文件
- php获取文件夹中所有lrc格式文件,提取lrc文件中内容
- 递归删除某个文件夹下面的所有文件和文件夹
- 相当实用的——Java递归删除指定文件夹下的所有文件
- [小经验]Windows系统中提取某个目录下所有文件夹(或文件)名
- 递归 查找 一个文件夹所有的子文件夹和文件
- c# 遍历文件夹下所有的子文件夹以及文件 递归
- ftp下载目录下所有文件及文件夹内(递归)
- 遍历文件夹access_log中的所有文件localhost_access_log*.txt,提取IP插入数据库中java代码
- 非递归方式遍历文件夹,取得所有子目录和文件的文件名和大小
- java删除文件夹(递归删除其子目录的所有文件夹及文件)
- 递归打开一个文件夹所有下面的文件|软件开发掌握