123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- #ifndef __FIND_FILE2_20151006__
- #define __FIND_FILE2_20151006__
- #pragma once
- class findfile2
- {
- public:
- findfile2(void);
- virtual ~findfile2(void);
- protected:
- INT m_nlimit;
- CStringArray m_vtEffctExt;
- CStringArray *m_pfiles;
- CStringArray *m_pnames;
- CStringArray *m_pfolders;
- CStringArray *m_pnames_noext;
- CStringArray *m_pvtfiles_sth; // s小图;
- CStringArray *m_pvtfiles_mth; // m小图;
- public:
- static BOOL iscorrectext(IN const CString &fext, OUT CString* lpMistakenExt = NULL);
- static int match(IN CONST CString &sExt, IN CONST CString &sFile);
- static void keepdownext(IN CONST CString &keepExt, IN CStringArray &vtfiles);
- static void keepoutext(IN CONST CString &removeext, IN CStringArray &vtfiles);
- static void subgroupExt(IN CONST CString &ext1, IN CStringArray &vt1, IN CONST CString &ext2, IN CStringArray &vt2); // 分组扩展名;
- static CString getfilename(IN CONST CString &file);
- protected:
- INT getlimit() const { return m_nlimit; }
- void setlimit(IN CONST INT &nlimit);
- void groupExt();
- void groupExt( IN CONST CString &strExts, IN CStringArray &AryExts );
- inline INT checklimit() { return m_pfiles->GetSize() == getlimit(); }
- BOOL IsaDirectory(CONST CString &sDirectory) { return (FILE_ATTRIBUTE_DIRECTORY == GetFileAttributes(sDirectory)); }
- // 查找所有文件,包括子文件夹名、文件名、文件路径;
- void findall(IN CONST CString& folder, IN CONST CString& findext);
- // 只返回2级子目录名;
- void findsubfolder(IN CONST CString& folder);
- // 只返回所有子目录名;
- void findallsubfolder(IN CONST CString& folder);
- // 查找文件路径,以及查找子目录的文件路径,但不获取子目录名;
- void findfiles_findin_subfolder(IN CONST CString& folder, IN CONST CString& findext);
- // 查找文件路径,不查找子目录的文件;
- void findfiles_findout_subfolder(IN CONST CString& folder, IN CONST CString& findext);
- // 查找文件路径,以及查找子目录的文件路径,同时获取子目录名;
- void findfiles_within_subfolder(IN CONST CString& folder, IN CONST CString& findext);
- // 查找文件名称,以及查找子目录的文件名称,但不获取子目录名(返回的文件包含扩展名);
- void findnames_findin_subfolder(IN CONST CString& folder, IN CONST CString& findext);
- // 查找文件名称,不查找子目录的文件(返回的文件包含扩展名);
- void findnames_findout_subfolder(IN CONST CString& folder, IN CONST CString& findext);
- // 查找文件名称,以及查找子目录的文件名称,同时获取子目录名(返回的文件包含扩展名);
- void findnames_within_subfolder(IN CONST CString& folder, IN CONST CString& findext);
- // 查找文件名称,以及查找子目录的文件名称,但不获取子目录名(返回的文件不含扩展名);
- void findnames_findin_subfolder_ex(IN CONST CString& folder, IN CONST CString& findext);
- // 查找文件名称,不查找子目录的文件(返回的文件不含扩展名);
- void findnames_findout_subfolder_ex(IN CONST CString& folder, IN CONST CString& findext);
- // 查找文件名称,以及查找子目录的文件名称,同时获取子目录名(返回的文件不含扩展名);
- void findnames_within_subfolder_ex(IN CONST CString& folder, IN CONST CString& findext);
- // 查找文件路径和文件名,以及查找子目录的文件路径和文件名,但不获取子目录名;(返回的文件包含扩展名);
- void findfilesnames_findin_subfolder(IN CONST CString& folder, IN CONST CString& findext);
- // 查找文件路径和文件名,不查找子目录;(返回的文件包含扩展名);
- void findfilesnames_findout_subfolder(IN CONST CString& folder, IN CONST CString& findext);
- // 查找文件路径和文件名,以及查找子目录的文件路径和文件名,且获取子目录名;(返回的文件包含扩展名);
- void findfilesnames_within_subfolder(IN CONST CString& folder, IN CONST CString& findext);
- // 查找文件路径和文件名,以及查找子目录的文件路径和文件名,但不获取子目录名(返回的文件不含扩展名);
- void findfilesnames_findin_subfolder_ex(IN CONST CString& folder, IN CONST CString& findext);
- // 查找文件路径和文件名,不查找子目录(返回的文件不含扩展名);
- void findfilesnames_findout_subfolder_ex(IN CONST CString& folder, IN CONST CString& findext);
- // 查找文件路径和文件名,以及查找子目录的文件路径和文件名,且获取子目录名(返回的文件不含扩展名);
- void findfilesnames_within_subfolder_ex(IN CONST CString& folder, IN CONST CString& findext);
- // 查找指定文件名和扩展名的文件;
- //void findfiles_bynames_findin_subfolder(IN CONST CString& folder, IN CONST CString& findext, IN CStringArray &names);
- //void findfiles_bynames_findout_subfolder(IN CONST CString& folder, IN CONST CString& findext, IN CStringArray &names);
- //void findfiles_bynames_within_subfolder(IN CONST CString& folder, IN CONST CString& findext, IN CStringArray &names);
- // 查找指定文件名和扩展名的文件;
- void findfiles_bynames_findin_subfolder(IN CONST CString& folder, IN CONST CString& findext, IN /*CONST*/ CStringArray &exts, IN CStringArray &names);
- void findfiles_bynames_findout_subfolder(IN CONST CString& folder, IN CONST CString& findext, IN /*CONST*/ CStringArray &exts, IN CStringArray &names);
- void findfiles_bynames_within_subfolder(IN CONST CString& folder, IN CONST CString& findext, IN /*CONST*/ CStringArray &exts, IN CStringArray &names);
- //////////////////////////////////////////////////////////////////////////
- // 查找到001.jpg时,同时查找s001.jpg和m001.jpg,如果没有小图需要用""表示;
- // findex不能够多个组合,如果要查找多个扩展名的,尽量分开;
- // 查找文件路径,以及查找子目录的文件路径,但不获取子目录名;
- void findfiles_withthumbnail_findin_subfolder(IN CONST CString& folder, IN CONST CString& findext);
- // 查找文件路径,不查找子目录的文件;
- void findfiles_withthumbnail_findout_subfolder(IN CONST CString& folder, IN CONST CString& findext);
- // 查找文件路径,以及查找子目录的文件路径,同时获取子目录名;
- void findfiles_withthumbnail_within_subfolder(IN CONST CString& folder, IN CONST CString& findext);
- };
- #endif
|