⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filefindext.h

📁 电子相册程序,实现图片的浏览,放大缩小等动能!evc4.0下编译通过!
💻 H
字号:
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// FileFindExt.h: interface for the CFileFindExt class.
/********************************************************************/
/*      *--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*              */
/*      |           中国科学院计算技术研究所         |              */
/*      *--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*              */
/*      编程环境: Visual C++ 6.0  (Windows 2000)                    */
/*		作    者: 唐 胜 						                    */
/*		邮    箱: ts@ict.ac.cn      			                    */
/*      发布版本: V1.2.1                                              */
/*      发布日期: Nov. 01, 2003     		 	                    */
/*      功能说明:搜索同一目录下的所有同类型文件,并进行处理         */
/*      版本修改:                                                  */
/*                V1.0:Sep. 26, 2002, 递归实现                     */
/*                V1.1:Oct. 20, 2003, 为加快搜索速度,减少开销     */
/*                      采用先深遍历非递归化实现                    */
/*                V1.2:Oct. 21, 2003, 考虑目录的层次结构,采用     */
/*                      广度遍历非递归化实现,并直接做成类          */
/*                v1.2.1: Nov. 01, 2003 对V1.2进行了优化            */
/*      说    明:今后根据需要可增加其它多参数处理函数,或修改处    */
/*                理函数, 使用时请保留以上相关信息                  */
/********************************************************************/
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_FILEFINDEXT_H)
#define AFX_FILEFINDEXT_H

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

//处理函数指针变量类型定义

//typedef BOOL (* PROFUN )(CString SrcFile, CString DstFile="");

//一个参数型文件处理(不生成其它目标文件)函数指针定义
typedef BOOL (* PROFUN1 )(CString SrcFile);

//两个参数型文件处理(生成目标文件)函数指针定义
typedef BOOL (* PROFUN2 )(CString SrcFile, CString DstFile);


class CFileFindExt : public CFileFind  //继承CFileFind类
{
protected:

	//成员变量:调用SearchFiles函数后,保存所有文件的
	//相对路径文件名(相对于起始搜索路径)
	CStringArray m_FileNames;
	
public:

	//构造函数和析构函数
	CFileFindExt();
	virtual ~CFileFindExt();

	
	//以下三个函数是成员变量操作函数

	/************************************************************************
	功能说明: 设置文件名数组成员变量的大小和内存分配增量
	参数说明: nNewSizen:当数组的大小;GrowBy:内存分配增量
	输出说明: 无
	函数调用: 类CStringArray的SetSize()
	*************************************************************************/
	void SetSize(int nNewSize, int nGrowBy = -1);

	/************************************************************************
	功能说明: 获取文件名数组成员变量的大小
	参数说明: 无
	输出说明: 返回文件名数组成员变量的大小
	函数调用: 类CStringArray的GetSize()
	*************************************************************************/
	int GetSize() const;
	
	/************************************************************************
	功能说明: 获取数组成员变量中的文件名
	参数说明: nFileIndex: 要获取的文件名在数组中的位置
	输出说明: 返回文件名
	函数调用: 类CStringArray的GetAt()
	*************************************************************************/
	CString GetAt(int nFileIndex) const;



	//以下三个函数是对所有文件进行处理的成员函数

	/************************************************************************
	修改日期:2003-10-21
	修改说明:为加快搜索速度,减少开销,用广度遍历实现非递归化
	功能说明: 寻找指定目录下、指定扩展名的所有文件
	调用格式: SearchFiles(DirName, FileExtName)
	参数说明: DirName: 指定目录名
			  FileExtName:指定扩展名,缺省为所有类型文件
	输出说明: 1、所有文件的相对路径文件名(相对于起始搜索路径)
				 保存在成员变量m_FileNames中;
			  2、成功返回true,分配内存不足时返回false
	函数调用: FindFile(),FindNextFile(),GetFilePath()
	*************************************************************************/
	BOOL SearchFiles(CString DirName, CString FileExtName="*.*");
	

	/************************************************************************
	修改日期:2003-10-21
	修改说明:为加快搜索速度,减少开销,用广度遍历实现非递归化
	功能说明: 处理指定目录下、指定扩展名的所有文件
	调用格式: DoProcess(DirName, process, FileExtName)
	参数说明: DirName: 指定目录名
			  process: 一个参数型处理函数批针PROFUN1
			  FileExtName:指定扩展名,缺省为所有类型文件
	输出说明: 1、对所有文件处理都成功,则返回true;
			  2、某一文件处理出错时(返回false),或分配内存不足时,
				 则终止搜索,返回false
	函数调用: process(),FindFile(),FindNextFile(),GetFilePath()
	*************************************************************************/
	BOOL DoProcess(CString DirName, PROFUN1 process, CString FileExtName="*.*");

	/************************************************************************
	修改日期:2003-10-21
	修改说明:为加快搜索速度,减少开销,用广度遍历实现非递归化
	功能说明: 处理指定目录下、指定扩展名的所有文件
	调用格式: DoProcess(DirName, process, DstDir, SrcFileExt, DstFileExt)
	参数说明: DirName: 指定目录名
			  process: 两个参数型处理函数批针PROFUN2
			  DstDir:  目标文件存放根目录名
			  SrcFileExt: 源文件扩展名,缺省为所有类型文件
			  DstFileExt: 目标文件扩展名,缺省为所有类型文件
	输出说明: 1、对所有文件处理都成功,则返回true;
			  2、某一文件处理出错(函数process()返回false),或分配内存不足时,
				 则终止搜索,返回false
	函数调用: process(),FindFile(),FindNextFile(),GetFilePath()
	*************************************************************************/
	BOOL DoProcess(CString DirName, PROFUN2 process, CString DstDir,
		CString SrcFileExt="*.*", CString DstFileExt="*.*");

	void Free(){m_FileNames.RemoveAll();}
	
};

#endif // !defined(AFX_FILEFINDEXT_H_)





















⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -