vc遍历所有文件|在windows下 怎么用c语言遍历文件夹要用纯c的

|

『壹』 VC++程序如何遍历一个文件夹下面的所有子文件夹下的文件

find(char * lpPath){ char szFind[MAX_PATH]; WIN32_FIND_DATA FindFileData; strcpy(szFind,lpPath); strcat(szFind,"*.*"); HANDLE hFind=::FindFirstFile(szFind,&FindFileData); if(INVALID_HANDLE_VALUE == hFind) return; while(TRUE) { if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { if(FindFileData.cFileName[0]!='.') { strcpy(szFile,lpPath); strcat(szFile,""); strcat(szFile,FindFileData.cFileName); find(szFile); } } else { cout << FindFileData.cFileName; } if(!FindNextFile(hFind,&FindFileData)) break; } FindClose(hFind);}#include <afxwin.h>#include <iostream>using namespace std;void Recurse(LPCTSTR pstr){ CFileFind finder; // build a string with wildcards CString strWildcard(pstr); strWildcard += _T("\\*.*"); // start working for files BOOL bWorking = finder.FindFile(strWildcard); while (bWorking) { bWorking = finder.FindNextFile(); // skip . and .. files; otherwise, we'd // recur infinitely!if (finder.IsDots()) continue; CString sFileName = finder.GetFileName(); cout << (LPCTSTR)sFileName << endl;//输出查找文件夹下的所有文件名 } finder.Close();}int main(){ if (!AfxWinInit(GetMoleHandle(NULL), NULL, GetCommandLine(), 0))//初始化MFC cout << "panic!" << endl; else Recurse(_T("C:")); return 0;}

『贰』 C语言如何遍历目录 (C++也可以) findfirst findnext怎么用

#include <windows.h>#include <stdio.h>FILE *fp;void findFile(char filePath[])//这个是你要的函数{ char szFind[MAX_PATH];//这是要找的 WIN32_FIND_DATA FindFileData; HANDLE hFind; char szFile[MAX_PATH]; strcpy(szFind,filePath); strcat(szFind,"\\*.*");//利用通配符找这个目录下的所以文件,包括目录 hFind=FindFirstFile(szFind,&FindFileData); if(INVALID_HANDLE_VALUE == hFind) return; while(TRUE) { if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)//这是目录 { if(FindFileData.cFileName[0]!='.')//.表示当前目录,因为每个目录下面都有两个默认目录就是..和.分别表示上一级目录和当前目录 { strcpy(szFile,filePath); strcat(szFile,"\\"); strcat(szFile,FindFileData.cFileName); findFile(szFile);//寻找这个目录下面的文件 } } else { fprintf(stdout,"%s\\%s\n",filePath,FindFileData.cFileName);//打印出目录下的文件的路径和名称 fprintf(fp,"%s\\%s\n",filePath,FindFileData.cFileName);//这将结果存档到c:\\path.txt中。 } if(!FindNextFile(hFind,&FindFileData))//寻找下一个文件 break; } FindClose(hFind);//关闭句柄}int main(){ fp = fopen("C:\\path.txt","w"); findFile("D:\\e-book\\实习\\随笔\\读书ing");//这里是你要遍历的目录,你自己可以改变,它会显示这个目录下的所有文件,包括这个目录下子目录下的文件。 fclose(fp); return 0;}程序如上,是把结果输出到标准输出上,并且存档到C:\\path.txt中。可以运行的,我已经测试过。工具是vc6.0.

『叁』 请问如何用c语言实现遍历查找磁盘下的exe文件 我是在VC6.0平台下

调用DOS 命令 dir 就可以了。如果只要显示文件名,加 选项 /B如果要显示所有子文件夹里的文件名, 加 选项 /S例如 DIR C:\*.exe /B /S如果要把显示 转向到文件 DIR C:\*.exe /B /S >> abc.lisDOS 命令 可以用 sprintf 做成,用 system() 让它执行。程序如下:#include <stdio.h>#include <stdlib.h>main(){char cmd[80];char d;for (d='C';d<='Z';d++) // 对 磁盘号 C: D: E: …..Z: 循环{ sprintf(cmd,"DIR %c:\\*.exe /B",d); // 命令// printf("%s\n",cmd); // 检查 命令字符串 是否正确system(cmd); // 执行}return 0;}

『肆』 VC下如何遍历文件夹及嵌套文件夹

void CTestDDlg::FindFile(CString strPath){ if (strPath.Right(3) != _T("*.*")) strPath.Append(_T("\\*.*")); CFileFind m_find; BOOL bFind = m_find.FindFile(strPath); while (bFind) { bFind = m_find.FindNextFile(); if (!m_find.IsDots()) { if (m_find.IsDirectory()) { FindFile(m_find.GetFilePath()); } else { // 文件使用_find.GetFilePath()取得路径 } } }} 调用示例:FindFile(_T("E:\\KuGou"));

『伍』 VC6.0遍历查找文件

clude <windows.h> BOOL IsRoot(LPCTSTR lpszPath){ TCHAR szRoot[4]; wsprintf(szRoot, "%c:\\", lpszPath[0]); return (lstrcmp(szRoot, lpszPath) == 0);}void FindInAll(::LPCTSTR lpszPath){TCHAR szFind[MAX_PATH];lstrcpy(szFind, lpszPath); if (!IsRoot(szFind)) lstrcat(szFind, "\\"); lstrcat(szFind, "*.*"); // 找所有文件WIN32_FIND_DATA wfd;HANDLE hFind = FindFirstFile(szFind, &wfd);if (hFind == INVALID_HANDLE_VALUE) // 如果没有找到或查找失败 return; do { if (wfd.cFileName[0] == '.') continue; // 过滤这两个目录 if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { TCHAR szFile[MAX_PATH]; if (IsRoot(lpszPath)) wsprintf(szFile, "%s%s", lpszPath, wfd.cFileName); else wsprintf(szFile, "%s\\%s", lpszPath, wfd.cFileName); FindInAll(szFile); // 如果找到的是目录,则进入此目录进行递归 } else { TCHAR szFile[MAX_PATH]; if (IsRoot(lpszPath)) wsprintf(szFile, "%s%s", lpszPath, wfd.cFileName); else wsprintf(szFile, "%s\\%s", lpszPath, wfd.cFileName); printf("%s\n",szFile); // 对文件进行操作 } } while (FindNextFile(hFind, &wfd)); FindClose(hFind); // 关闭查找句柄}int main(int argc, char* argv[]){ FindInAll("e:\\result"); return 0;}//结合网上资料写出的,作者–杨克群^_^

『陆』 vc 如何遍历C盘下所有的文件夹

使用CFileFind类实现。

『柒』 vc++中如何遍历文件夹里面的文件

代码见图

『捌』 在windows下 怎么用c语言遍历文件夹要用纯c的

什么叫纯C?用C语言遍历文件肯定需要用到函数,标准C下貌似没有这个函数内,但容是使用VC的函数库可能可以实现,如果实在不行可以用第三方函数库,,,还不行的话用system("command");引用dos命令可以遍历,

『玖』 vc如何遍历全盘(包括子目录)

int count_file(char *dir){ _finddata_t p;//定义一个结构体存放文件属性int n,n1;char *a;n=strlen(dir);a=new char [n+100];n1=0;strcpy(a,dir);strcat(a,"\\*.*");if((n=_findfirst(a,&p))!=-1L)//调用文件查找函数{if(strcmp(p.name,".")&&strcmp(p.name,"..")){if((p.attrib&_A_SUBDIR))//文件是否为文件夹{int n2=strlen(dir)+strlen(p.name);char *b=new char [n2+10];strcpy(b,dir);strcat(b,"\\");strcat(b,p.name);n1+=count_file(b);//递归调用 作用是返回文件夹内的文件总数n1++;delete(b);}}while(_findnext(n,&p)==0)//寻找下一个文件{if(strcmp(p.name,".")&&strcmp(p.name,"..")){if((p.attrib&_A_SUBDIR)){int n2=strlen(dir)+strlen(p.name);char *b=new char [n2+10];strcpy(b,dir);strcat(b,"\\");strcat(b,p.name);n1+=count_file(b);delete(b);n1++;}else n1++;}}_findclose(n);//结束寻找}delete(a);return n1;//返回文件总个数}

『拾』 关于VC++下遍历目录文件,请高手来啊,高分悬赏,问题解决加分悬赏150 急急急!!!!

INVALID_HANDLE_VALUE 就是被微软本定义为-1 的,但是直接写-1的话,编译器会提示类型不匹配,所以需要强制转换一下。HANDLE FindFirstFile( LPCTSTR lpFileName, // file name LPWIN32_FIND_DATA lpFindFileData // data buffer ); 该函数到一个文件夹(包括子文件夹)去搜索指定文件 如果要使用附加属性去搜索文件的话 可以使用FindFirstFileEx函数 HANDLE hFindFile搜索的文件句柄 函数执行的时候搜索的是此句柄的下一文件 LPWIN32_FIND_DATA lpFindFileData 指向一个用于保存文件信息的结构体 如果调用成功返回一个句柄,可用来做为FindNextFile 或 FindClose参数 调用失败 返回为INVALID_HANDLE_VALUE(即-1) ,可调用GetLastError来获取错误信息


赞 (0)