HANDLE FindFirstFile(
LPCTSTR lpFileName, // file name
LPWIN32_FIND_DATA lpFindFileData // data buffer
);
BOOL FindNextFile(
HANDLE hFindFile, // search handle
LPWIN32_FIND_DATA lpFindFileData // data buffer
);
这两个API就行了,详情参考MSDN。记住要包含 windows.h 这个头文件。
‘贰’ C语言问题: 一个文件夹不断生成文件夹和文件,怎么不断扫描它们获取列表
可以用循环语句,定时获取。
例如:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
main(){
int i;
char cmd1[80], cmd2[80];
for (i=0;i<5;i++){ // 可以无限循环,由你定
sprintf(cmd1,"DIR /AD /od /B > tmp_dir_%d.lis",i); //当前文件夹内的 文件夹 列表
sprintf(cmd2,"DIR /od /B > tmp_file_%d.lis",i); //当前文件夹内的 文件 列表
// sprintf(cmd1,"DIR /AD /S /od /B > tmp_dir_%d.lis",i); //当前文件夹内和子文件夹 文件夹表
// sprintf(cmd2,"DIR /S /od /B > tmp_file_%d.lis",i); //当前文件夹和子文件夹内 所有文件 列表
system(cmd1);
system(cmd2);
printf("output tmp_dir_%d.lis\n",i);
printf("output tmp_file_%d.lis\n",i);
Sleep(2000); // 每隔2秒取一次
}
return 0;
}
‘叁’ c语言扫描目录下的大量文本文件,用fgetc进行扫描
改为:
printf("please anykey to continue...");
getch();
‘肆’ win10编译C语言总是提示扫描此文件,更改设置也不好使
那是你系统自带的东西,右键桌面最左下角的win图标,控制面板,计算机安全,在那里有开关,
‘伍’ 如何用C语言获取目录下的文件和目录列表
#include <stdio.h>
#include <stdlib.h>
void main()
{
system("DIR /D C:\\ /s /B > a.log");
}
C:\下的所有文件夹,子文件夹里所有文件,转向到 文本文件 a.log 里。
格式:
C:\aaa\bbb\ccc\...
只要文件夹命令:
dir /d c: /B /ad
只要文件夹命令,含子文件夹:
dir /d c: /B /ad /s
‘陆’ c语言 怎么查找 当前目录有哪些 文件
在命令提示符窗口运行:findfile (盘符): *.(文件后缀)
如:[sourcecode language=”plain”]findfile d: *.txt [/sourcecode]
即为找出d盘根目录下的所有.txt后缀的文件并写入文件路径于文件中。
‘柒’ 一个linux下的C语言目录扫描程序,看不懂,求注释!越详细越好啊。会追加悬赏的!!
其实递归这种东西你如果理解了,根本不需要注释,如果不理解再多的注释还是不懂,这个是linux程序设计中的一段经典代码,代码的核心其实就这几句
if(S_ISDIR(statbuf.st_mode))
{
if(strcmp(".",entry->d_name)==0||strcmp("..",entry->d_name)==0)
continue;
printf("%*s%s/\n",depth,"",entry->d_name);
printdir(entry->d_name,depth+4);
}
首先确定是目录,要不然直接输出,然后如果的当前目录(.)或者父目录(..),则执行下一个循环其实就是跳过这两个目录,printf("%*s%s/\n",depth,"",entry->d_name);这句其实就是让显示的好看点,根据depth决定要打印出几个空格,书上有关于&*s的用法,接着就是再一次递归。。。。这个解释不来,只能意会不能言传。
‘捌’ sourceanalyzer扫描c语言命令
扫描步骤如下:
有两个文件:auditworkbench.cmd和sourceanalyzer.exe,auditworkbench.cmd是查看静态分析报告的工具,sourceanalyzer.exe是静态代码分析器。这里我们还看到了一个FindBugs的目录,这是因为这个版本的Fortify集成了此功能,你可以通过传参给sourceanalyzer.exe调用FindBugs。
‘玖’ 怎么用C语言编写一个程序,可以搜索电脑里的文件
//***************全盘搜索指定文件*******************
//**************************************************
//**使用递归来搜索文件,效率低,使用多线程效果更好**
//**************************************************
#include<stdio.h>
#include<windows.h>
void FindFile(char*,char*);
int count=0;//统计文件数
char fname[32];
#define BUFSIZE 256
int main(int argc,char*argv[])
{
char szLogicalDriveStrings[BUFSIZE];
DWORD iLength;
int iSub;
printf("请输入要搜索的文件名");
scanf("%s",fname);
ZeroMemory(szLogicalDriveStrings, BUFSIZE);
iLength = GetLogicalDriveStringsA(BUFSIZE-1, szLogicalDriveStrings);
for(iSub=0;iSub<iLength;iSub+=4)
{
//如果不是固定磁盘驱动器:本地硬盘或移动硬盘,忽略
if(GetDriveType(szLogicalDriveStrings+iSub)!=3)
continue;
FindFile(szLogicalDriveStrings+iSub,"*.*");
}
printf("一共发现%d个文件..\n",count);
scanf("%*d");
return 0;
}
void FindFile(char*pfilename,char*pfilter)
{
WIN32_FIND_DATA findfiledate;
HANDLE hfind;
char filename[512];
char ipFileName[512];
char _ipFileName[512];
int i;
int result;
for (i=0;*(pfilename+i)!='\0';i++)
filename[i]=*(pfilename+i);
filename[i]='\0';
//如果最后一个字符不是‘\’
if(filename[strlen(filename)-1]!='\\')
strcat(filename,"\\");//添加"\"
strcpy(ipFileName,filename);
strcat(ipFileName,pfilter);
hfind=FindFirstFile(ipFileName,&findfiledate);
if(hfind==INVALID_HANDLE_VALUE)
return;
do
{
//如果不是目录
if(!(findfiledate.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY))
{
//如果找到指定文件
if(0==strcmp(fname,findfiledate.cFileName))
{
printf("%s%s\n",filename,findfiledate.cFileName);
count++;
}
}
//如果是目录
else
{
//.和..不输出
if(findfiledate.cFileName[0]!='.')
{
strcpy(_ipFileName,filename);
strcat(_ipFileName,findfiledate.cFileName);
FindFile(_ipFileName,pfilter);//递归
}
}
}while(FindNextFile(hfind,&findfiledate));//FindNextFile返回为真,继续搜索
FindClose(hfind);
return;
}
非原作者
‘拾’ 请问C语言有什么查文件夹目录的函数不要dir.h的,最后能是TC的。谢谢!
关于文件夹这种系统操作的,C/C++都没有提供相应的支持,因为这些是系统相关的,所以linux和windows各自有一套自己的管理办法。linux提供fstat等方法,windows有自己的API,可以查找msdn,关键字FindFirstFile
//以下为参考资料中提到的
TC的目录函数,不是在dir.h,就是在dos.h函数库中。
查找文件夹目录的函数好象只有一个比较合适,请参考:
int findfirst(char *pathname,struct ffblk *ffblk,int attrib)
struct ffblk
{
char ff_reserved[21]; /*DOS保留字*/
char ff_attrib; /*文件属性*/
int ff_ftime; /*文件时间*/
int ff_fdate; /*文件日期*/
long ff_fsize; /*文件长度*/
char ff_name[13]; /*文件名*/
}
attrib为文件属性,由以下字符代表:
FA_RDONLY 只读文件
FA_LABEL 卷标号
FA_HIDDEN 隐藏文件
FA_DIREC 目录
FA_SYSTEM 系统文件
FA_ARCH 档案