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 檔案