/************************************************************************/ /* Copyright (C), 2016-2020, [IT], ��������Ȩ��; /* ģ �� ����; /* �� ����; /* /* �� ����[V]; /* �� �ߣ�[IT]; /* �� �ڣ�[12/22/2016]; /* /* /* ע �⣺; /* /* �ļ�¼��[IT]; /* �����ڣ�; /* �İ汾��; /* �����ݣ�; /************************************************************************/ #ifndef __FIND_FILE_20151003__ #define __FIND_FILE_20151003__ #include <string> #include <vector> using namespace std; #ifndef _UNICODE typedef string TString; #else typedef wstring TString; #endif typedef vector<TString> STR_VEC; #pragma once class findfile { public: findfile(void); virtual ~findfile(void); //protected: public: INT m_nlimit; STR_VEC m_vtEffctExt; STR_VEC *m_pvtfiles; STR_VEC *m_pvtnames; STR_VEC *m_pvtfolders; STR_VEC *m_pvtfiles_sth; // sСͼ; STR_VEC *m_pvtfiles_mth; // mСͼ; public: static BOOL iscorrectext(IN const TString &fext, OUT TString* lpMistakenExt = NULL); // lowercase��uppercase�ڶ��ֽ�����Ƨ�ֻ�����⣨�B���b���BתСд���ɬb���������bת��д���ɬB��;����; static TString lowercase(IN const TString &Str); static void lowercase(IN TString& str); static TString uppercase(IN const TString &Str); static void uppercase(IN TString& str); //static int match(IN CONST TString &sExt, IN CONST TString &sFile); static inline int findfile::match(IN CONST TString &strExt, IN CONST TString &strfile) { int pos = strfile.find_last_of(_T('.')); if (TString::npos != pos) return !_tcsicmp(strExt.c_str(), strfile.substr(pos).c_str()); return FALSE; } static TString getfilename(IN CONST TString &file); protected: INT getlimit() const { return m_nlimit; } void setlimit(IN CONST INT &nlimit); void groupExt(); void groupExt( IN CONST TString &exts, IN STR_VEC &vtExts ); inline INT checklimit() { return m_pvtfiles->size() == getlimit(); } BOOL IsaDirectory(CONST TString &sDirectory) { return (FILE_ATTRIBUTE_DIRECTORY == GetFileAttributes(sDirectory.c_str())); } public: // ���������ļ�,�������ļ��������ļ������ļ�·��; void findall(IN CONST TString& folder); // ֻ����2����Ŀ¼��(����ok); void findsubfolder(IN CONST TString& folder); // ֻ����������Ŀ¼��(����ok); void findallsubfolder(IN CONST TString& folder); // �����ļ�·��,�Լ�������Ŀ¼���ļ�·��,������ȡ��Ŀ¼��(����ok); void findfiles_findin_subfolder(IN CONST TString& folder); // �����ļ�·��,��������Ŀ¼���ļ�(����ok); void findfiles_findout_subfolder(IN CONST TString& folder); // �����ļ�·��,�Լ�������Ŀ¼���ļ�·��,ͬʱ��ȡ��Ŀ¼��(����ok); void findfiles_within_subfolder(IN CONST TString& folder); // �����ļ�����,�Լ�������Ŀ¼���ļ�����,������ȡ��Ŀ¼��(���ص��ļ�������չ��)(����ok); void findnames_findin_subfolder(IN CONST TString& folder); // �����ļ�����,��������Ŀ¼���ļ�(���ص��ļ�������չ��)(����ok); void findnames_findout_subfolder(IN CONST TString& folder); // �����ļ�����,�Լ�������Ŀ¼���ļ�����,ͬʱ��ȡ��Ŀ¼��(���ص��ļ�������չ��)(����ok); void findnames_within_subfolder(IN CONST TString& folder); // �����ļ�·�����ļ���,�Լ�������Ŀ¼���ļ�·�����ļ���,������ȡ��Ŀ¼��;(���ص��ļ�������չ��)(����ok); void findfilesnames_findin_subfolder(IN CONST TString& folder); // �����ļ�·�����ļ���,��������Ŀ¼;(���ص��ļ�������չ��)(����ok); void findfilesnames_findout_subfolder(IN CONST TString& folder); // �����ļ�·�����ļ���,�Լ�������Ŀ¼���ļ�·�����ļ���,�һ�ȡ��Ŀ¼��;(���ص��ļ�������չ��)(����ok); void findfilesnames_within_subfolder(IN CONST TString& folder); }; #endif