這個示例程式基本實現了dir命令的行為,但是是使用了objectivec的委託機制,思想是不錯的,共享之
以後需要用到可以直接拿來用,因為委託機制真的很不錯
//
// 檔名:enumfile.h
// 工程名:enumfile
// 作 者:ccnyou
//#ifndef enumfile_h__
#define enumfile_h__
#include #include #include #include #ifndef _t
#define _t text
#endif
class enumfiledelegate
//發現檔案
virtual void didfoundfile(lpctstr pstrfilename){}
//即將進入目錄
virtual void willentrydirectory(lpctstr pstrdirectoryname){}
//已經進入目錄
virtual void didentrydirectory(lpctstr pstrdirectoryname){}
//詢問是否應該進入到目錄 true,false 忽略之
virtual bool shouldentrydirectory(lpctstr pstrdirectoryname)
};void enumdirectory(lpctstr pstrpath,enumfiledelegate *pdelegate);
#endif // enumfile_h__
//
// 檔名:enumfile.cpp
// 工程名:enumfile
// 作 者:ccnyou
//#include "stdafx.h"
#include "enumfile.h"
#include static bool isfilenamevalid(lpctstr pstrfilename)
if (lstrcmp(pstrfilename,_t("..")) == 0)
return true;
}void enumdirectory(lpctstr pstrpath,enumfiledelegate *pdelegate)} }
else
}while(findnextfile(hfindfile,&filedata) != null);
} setcurrentdirectory(strcurdir);
}
//
// 檔名:main.cpp
// 工程名:enumfile
// 作 者:ccnyou
//#include "stdafx.h"
#include #include #include "enumfile.h"
class mydelegate : public enumfiledelegate
void didfounddirectory(lpctstr pstrdirectoryname)
void didentrydirectory(lpctstr pstrdirectoryname)
void didfoundfile(lpctstr pstrfilename)
//去掉注釋,可以只遍歷當前目錄,而不進入子目錄
// bool shouldentrydirectory(lpctstr *pstrdirectoryname)
//
};int main(int argc, char* argv)
其中,stdafx.h 是工程自動生成的,如果需要沒有生成,可以自己手工建立乙個stdafx.h
python遍歷目錄檔案
直接上 os.walk import os from os.path import join,getsize for root,dirs,files in os.walk python lib email print root,consumes print sum getsize join root...
python 檔案目錄遍歷
import os path r f pycharmprojects basic gram 作業和習題 test def getallfileanddir path 獲取當前目錄下所有檔案及檔案目錄 filelist os.listdir path print filelist 遍歷filelist...
基於ACE實現C 目錄遍歷
目錄遍歷,在軟體程式設計中屬於常見的需求 如 病毒掃瞄 源 編輯 檔案比較。在 windows 環境,使用 findfirstfileex findnextfile 詳細情況可以參考 msdn 等檔案訪問函式,能夠實現目錄遍歷 在 posix 環境,可以使用 open dir 跨平台不是這裡討論的重...