导航:首页 > 版本升级 > vc遍历所有文件

vc遍历所有文件

发布时间:2023-04-26 20:16:14

『壹』 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.lis
DOS 命令 可以用 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来获取错误信息

阅读全文

与vc遍历所有文件相关的资料

热点内容
google地图调用代码 浏览:567
什么网站童装好看 浏览:525
网站怎么理解缓存 浏览:204
删除笔记本登陆密码忘记了 浏览:318
cnc编程都有哪些 浏览:731
dos查看所有文件及路径 浏览:367
dw制作点击鼠标播放声音代码 浏览:469
mspptolb文件下载 浏览:932
安卓手机只有数据线怎么充电 浏览:268
iphone5怎么改运营商名字 浏览:786
cad文件中的块全部导出 浏览:770
ip拦截转向工具 浏览:170
数据机房ups是什么 浏览:606
苹果官网在哪更改密码 浏览:206
主机号和网络号怎么算 浏览:603
联通4g网络接入点 浏览:126
成人编程培训班哪个好选用极客时间 浏览:372
linux查看操作系统版本命令 浏览:855
亿起点app教师端怎么注册 浏览:759
委托代建的文件有哪些 浏览:928

友情链接