C/C++中关于遍历文件夹的操作
来源:互联网 发布:淘宝客服哪里找 编辑:程序博客网 时间:2024/05/19 20:59
#include <windows.h>
#include <stdio.h>
void FindFileInDir(char* rootDir, char* strRet)
{
char fname[256];
ZeroMemory(fname,256);
WIN32_FIND_DATA fd;
ZeroMemory(&fd, sizeof(WIN32_FIND_DATA));
HANDLE hSearch;
char filePathName[256];
char tmpPath[256];
ZeroMemory(filePathName, 256);
ZeroMemory(tmpPath, 256);
strcpy(filePathName, rootDir);
BOOL bSearchFinished = FALSE;
if( filePathName[strlen(filePathName) -1] != '//' )
{
strcat(filePathName, "//");
}
strcat(filePathName, "*");
hSearch = FindFirstFile(filePathName, &fd);
//Is directory
if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
&& strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )
{
strcpy(tmpPath, rootDir);
strcat(tmpPath, fd.cFileName);
FindFileInDir(tmpPath, strRet);
}
else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )
{
sprintf(fname, "%-50.50s", fd.cFileName);
strcat(strRet + strRet[strlen(strRet)] , fname);
}
while( !bSearchFinished )
{
if( FindNextFile(hSearch, &fd) )
{
if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
&& strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )
{
strcpy(tmpPath, rootDir);
strcat(tmpPath, fd.cFileName);
FindFileInDir(tmpPath, strRet);
}
else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )
{
sprintf(fname, "%-50.50s", fd.cFileName);
strcat(strRet + strRet[strlen(strRet)] , fname);
}
}
else
{
if( GetLastError() == ERROR_NO_MORE_FILES ) //Normal Finished
{
bSearchFinished = TRUE;
}
else
bSearchFinished = TRUE; //Terminate Search
}
}
FindClose(hSearch);
}
main()
{
}
把这段代码复制 另存为后缀为 .CPP 文件 然后编译 可以编译
在来看看你的那个
花了几分钟改成了 C语言
贴出来了
你把下边的代码复制
另存为后缀为 .C 的文件
然后 编译 就可以了
#include <windows.h>
#include <stdio.h>
void FindFileInDir(char* rootDir, char* strRet)
{
char fname[256];
WIN32_FIND_DATA fd;
HANDLE hSearch;
char filePathName[256];
char tmpPath[256];
BOOL bSearchFinished = FALSE;
ZeroMemory(fname,256);
ZeroMemory(&fd, sizeof(WIN32_FIND_DATA));
ZeroMemory(filePathName, 256);
ZeroMemory(tmpPath, 256);
strcpy(filePathName, rootDir);
if( filePathName[strlen(filePathName) -1] != '//' )
{
strcat(filePathName, "//");
}
strcat(filePathName, "*");
hSearch = FindFirstFile(filePathName, &fd);
//Is directory
if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
&& strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )
{
strcpy(tmpPath, rootDir);
strcat(tmpPath, fd.cFileName);
FindFileInDir(tmpPath, strRet);
}
else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )
{
sprintf(fname, "%-50.50s", fd.cFileName);
strcat(strRet + strRet[strlen(strRet)] , fname);
}
while( !bSearchFinished )
{
if( FindNextFile(hSearch, &fd) )
{
if( (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
&& strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )
{
strcpy(tmpPath, rootDir);
strcat(tmpPath, fd.cFileName);
FindFileInDir(tmpPath, strRet);
}
else if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..") )
{
sprintf(fname, "%-50.50s", fd.cFileName);
strcat(strRet + strRet[strlen(strRet)] , fname);
}
}
else
{
if( GetLastError() == ERROR_NO_MORE_FILES ) //Normal Finished
{
bSearchFinished = TRUE;
}
else
bSearchFinished = TRUE; //Terminate Search
}
}
FindClose(hSearch);
}
main()
{
char abc[25]="c://TEXTRO";
char cde[25]="exe";
FindFileInDir(abc,cde);
}
- C/C++中关于遍历文件夹的操作
- C/C++中关于遍历文件夹的操作
- C语言中对文件夹的操作
- 【C#】C#中遍历文件夹下的目录文件
- 【C/C++】文件夹的打开、遍历、删除、创建、关闭操作汇总
- c遍历文件夹
- C/C++遍历文件夹
- c 遍历文件夹
- C/C++ 遍历文件夹
- C#--遍历文件夹实例
- C/C++遍历文件夹
- c/c++遍历文件夹
- C/C++文件夹 的操作
- c语言 遍历搜索文件夹(获取文件夹中所有内容)
- 【C语言】【unix c】文件夹的操作
- Linux c 遍历文件夹下的文件名
- C#中对文件以及文件夹的操作
- C语言中关于时间的操作
- 在ASP.NET中实现会话状态基础
- 获取错误码
- Matlab的Python实现Scipy和Matplotlib简介
- 在.net中创建使用全球唯一标识符
- 可不要乱进,你会后悔的!!!!!!!!!!!!!!!!!!1
- C/C++中关于遍历文件夹的操作
- Cannot forward after response has been committed
- Test
- 认识ASP.NET配置文件Web.config
- 认识ASP.NET会话状态
- ASP+模版技术生成静态HTML网页实例
- ASP.NET跨页面传值技巧
- linux 常用手册
- eclipse3.2.1及插件安装基础教程