📄 wardirlist.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 + -