c++遍历某个路径上的所有文件(比如txt)
c++遍历某个路径下的所有文件(比如txt)
hi,如题,
1.我想在windows下实现(我在linux上实现了,但是用到了一个库,windows下没有);
2.我不想依赖VS之类的,感觉他们也是有些自己独特的库,因为我现在用codeblocks;
3.之前有个人用C++调用cmd的部分命令,一句话就把路径下的所有文件名称写到开一个txt文件,然后通过读取该txt文件来遍历这些文件,我实现了,但觉得还不是我想要的。
用VS实现可以,但保证我在codeblocks下不用VS的编译器也能实现就行了,谢谢啦!!!
------解决方案--------------------
给一段以前写的代码,供参考:
------解决方案--------------------
#1不是依赖MFC或者VS,这个依赖微软提供的库,#1的代码不依赖MFC。
VS只是一个集成环境,包括编译器,编辑器,调试器等。MFC又只是一个封装了的界面库。
你可以用codeblocks引用:
------解决方案--------------------
<io.h>头文件,
_findfirst
_findnext
函数
这个不是 MFC的函数
------解决方案--------------------
子路径下的文件需要遍历么? 如果需要就用dfs或bfs就好了
------解决方案--------------------
hi,如题,
1.我想在windows下实现(我在linux上实现了,但是用到了一个库,windows下没有);
2.我不想依赖VS之类的,感觉他们也是有些自己独特的库,因为我现在用codeblocks;
3.之前有个人用C++调用cmd的部分命令,一句话就把路径下的所有文件名称写到开一个txt文件,然后通过读取该txt文件来遍历这些文件,我实现了,但觉得还不是我想要的。
用VS实现可以,但保证我在codeblocks下不用VS的编译器也能实现就行了,谢谢啦!!!
------解决方案--------------------
给一段以前写的代码,供参考:
// 遍历给定目录下所有子目录,查找*.txt,放入CStringArray中
void CTestMADlg::getFolderDayFile(CString pathStr, CStringArray& arrStrFile)
{
CString myDataPath,fdPath;
myDataPath=pathStr + "\\*.*";
CString strTmp;
CFileFind find;
BOOL bf = find.FindFile(myDataPath);
while(bf)
{
bf = find.FindNextFile();
if(!find.IsDots())
{
fdPath=find.GetFilePath();
if (find.IsDirectory())
{
//如果是文件夹,递归,继续往下找
getFolderDayFile(fdPath, arrStrFile);
}
else
{
//如果是文件,判断是否是*.txt
strTmp=fdPath.Right(4);
strTmp.MakeLower();
if ( strTmp==".txt" )
arrStrFile.Add(fdPath);
}
}
}
find.Close();
}
------解决方案--------------------
#1不是依赖MFC或者VS,这个依赖微软提供的库,#1的代码不依赖MFC。
VS只是一个集成环境,包括编译器,编辑器,调试器等。MFC又只是一个封装了的界面库。
你可以用codeblocks引用:
谢谢,不过一看我感觉就是严重依赖MFC或者VS的。
能写个满足我1,2,3条要求的程序不?谢谢啦!
------解决方案--------------------
<io.h>头文件,
_findfirst
_findnext
函数
这个不是 MFC的函数
------解决方案--------------------
子路径下的文件需要遍历么? 如果需要就用dfs或bfs就好了
------解决方案--------------------
#include <stdio.h>
#include <io.h>
int main (void)
{
_finddata_t fileDir;
char* dir="d:\\temp\\*.*";
long lfDir;
if((lfDir = _findfirst(dir,&fileDir))==-1l)