學習了LINUX下用C語言遍歷資料夾,一些心得

2021-05-27 04:55:49 字數 1855 閱讀 2756

2010-11-26 16:08:03

|  分類:

linux

|  標籤:|字型大小

大中小訂閱

學習了linux下用c語言遍歷資料夾,一些心得

struct dirent中的幾個成員:

d_type:4表示為目錄,8表示為檔案

d_reclen:16表示子目錄或檔案,24表示非子目錄

d_name:目錄或檔案的名稱

具體**如下,僅供參考

#include

#include

#include

void list(char *path)

else}}

}int main(int argc, char *argv)

上面函式修改後:

void list(char *path)

}else if(ent->d_reclen==16)

else}}

#include  

#include  

#include  

#include  

void dir_scan(char   *path,   char   *file);  

int count = 0;  

int main(int   argc,   char   *argv)  

if(lstat(argv[1],   &s)   <   0)   

//判斷乙個路徑是否是目錄

if(!s_isdir(s.st_mode))  

dir_scan("",   argv[1]);  

printf("total:   %d   files\n",   count);  

exit(0);  

}  

void   dir_scan(char   *path,   char   *file)  

if(s_isdir(s.st_mode))  

if(chdir(file)   <   0)     

while((dt   =   readdir(dir))   !=   null)  

dir_scan(dirname,   dt->d_name);  

}  

if(chdir("..")   <   0)  

}else  

}linux c 下如何獲得目錄下的檔案數目。

int main(

int argc,

char

**argv)

fcnt=0;

for(pdirent=readdir(pdir)

;pdirent!=null;pdirent=readdir(pdir)

)printf

("檔案總數%d\n"

,fcnt)

;closedir(pdir)

;return 0;

}#include

#include

#include

#include

#include

void printdir(char *dir, int depth)

chdir(dir);

while((entry = readdir(dp)) != null)

else printf( "%*s%s\n ",depth, " ",entry-> d_name);

} chdir( ".. ");

closedir(dp);

} /**//*    now we move onto the main function.    */

int main(int argc, char* argv)

linux用c語言來遍歷目錄

做遍歷目錄需要的函式有 dir opendir const char name struct dirent readdir dir dir closedir const char name 其中 readdir 返回引數dir目錄流的下個目錄進入點。結構dirent定義如下 struct diren...

Linux下用C語言API連線MySQL資料庫

像php和perl一樣,mysql也提供的c語言使用的api.c 的api是隨mysql一起發布的.它包含在mysqlclient庫中,可以使c程式來訪問資料庫.mysql原始碼包中的許多客戶端都是用c寫的.如果你正在找使用這些c api的例子,可以看看客戶端的寫法.你可以在mysql原始碼包的cl...

在Linux下用C語言實現簡訊收發

去年在部落格裡發這個貼時,只將主程式 貼了出來,導致資訊不完整,讓讀者根本無法進行實驗。為此,現將全部 貼出來,為想在linux下開發基於簡訊貓的簡訊收發程式的朋友提供一點參考。首先,我根據功能需要建立了幾個標頭檔案,乙個是stringex.h,包含一些字串輔助函式 乙個是inifile.h,包含讀...