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

📄 wardirlist.cpp

📁 ftpserver very good sample
💻 CPP
字号:
#include "StdAfx.h"#include "WarDirList.h"   // class implemented#ifndef WAR_LOG_H#   include "WarLog.h"#endif#ifndef WAR_SVR_PROTOCOL_H#   include "WarSvrProtocol.h"#endif#if defined(HAVE_SYS_TYPES_H) && !defined(WAR_SYS_TYPES_H_INCLUDED)#   define WAR_SYS_TYPES_H_INCLUDED#   include <sys/types.h>#endif#if defined(HAVE_DIRENT_H) && !defined(WAR_DIRENT_H_INCLUDED)#   define WAR_DIRENT_H_INCLUDED#   include <dirent.h>#endif#ifndef WAR_FNMATCH_H#   include "WarFnmatch.h"#endifusing namespace std;/////////////////////////////// PUBLIC /////////////////////////////////////////============================= LIFECYCLE ====================================WarDirList::WarDirList(const war_uint32_t flags): mFlags(flags),mIsCreated(false),mDoNeedStat(true),mLongestName(0),mBlockSizeLen(4),mCntHidden(0),mTotalBytes(0){}//============================= OPERATORS ====================================//============================= OPERATIONS ===================================void WarDirList::Create(const WarUrl& listUrl, bool bNeedStat){    if (mIsCreated)        WarThrow(WarError(WAR_ERR_ALREADY_INITIALIZED), NULL);    mIsCreated = true;    mDoNeedStat = bNeedStat;    mUrl = listUrl;    ScanDir(listUrl);}void WarDirList::ScanDir(const WarUrl& listUrl){    WarLog filedb_log(WARLOG_FILES, "WarDirList::ScanDir");    if (filedb_log)        filedb_log << "Scanning " << listUrl << war_endl;;    war_syspath_t my_path = listUrl.GetFilePath();    WarFileDriver::driver_ptr_t driver_ptr =         WarFileEngine::GetEngine().GetDriver(        listUrl.GetDriverName().c_str());    driver_ptr->WarListDirectory(listUrl, *this);}bool WarDirList::IsFileExcluded(war_svrpath_ccstr_t fileName,                                 bool doIgnorePatterns) const{    if (!doIgnorePatterns && !mPatternList.empty())    {        for(patterns_t::const_iterator P = mPatternList.begin()            ; P != mPatternList.end()            ; P++)        {            if (!WarFnmatch(P->GetPath(), fileName, FNM_NOESCAPE | FNM_PERIOD))                return true;        }       }    if (!mExcludeList.empty())    {        for(patterns_t::const_iterator P = mExcludeList.begin()            ; P != mExcludeList.end()            ; P++)        {            if (WarFnmatch(P->GetPath(), fileName, FNM_NOESCAPE | FNM_PERIOD))                return true;        }       }    return false;}//============================= ACCESS     ===================================//============================= INQUIRY    ===================================/////////////////////////////// PROTECTED  ////////////////////////////////////////////////////////////////// PRIVATE    ///////////////////////////////////

⌨️ 快捷键说明

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