linux下遍歷某一目錄下的內容

2021-06-03 01:28:19 字數 900 閱讀 7187

在linux下遍歷某一目錄下內容linux下歷遍目錄的方法一般是這樣的 

開啟目錄->讀取->關閉目錄 

相關函式是opendir -> readdir -> closedir,其原型如下: 

#include

dir *opendir(const char *dirname); 

struct dirent *readdir(dir *dirp); 

int closedir(dir *dirp); 

簡單列舉一例: 

#include

struct dirent* ent = null; 

dir *pdir; 

if( (pdir=opendir("/home/test")) == null) 

while( (ent=readdir(pdir)) != null ) 

closedir(pdir); 

其中有一很關鍵的結構體dirent: 

** on linux, the dirent structure is defined as follows: struct dirent ;其中inode表示存放的是該檔案的結點數目(具體可了解linux下的檔案系統),d_off 是檔案在目錄中的編移,這兩個基本很少用。 

d_type表示檔案型別: 

view sourceprint?01 enum 

02 ; 

d_reclen認為是紀錄的長度,計算方式應該是4(d_ino)+4(d_off)+2(d_reclen)+1(d_type)+1(補齊位)+4n(d_name會自動補齊:1.jpg為8,12.jpg也為8,1234.jpg也為8,12345.jpg則為12);所以一般d_reclen是20和24(其中.和..是16)。 

d_name表示檔名,如test.jpg 

spquery查詢某一目錄下所有文件和資料夾

webservice裡查詢某一目錄下的所有物件 資料夾和文件 文件庫 1 物件模型裡的查詢某一目錄下的所有物件 資料夾和文件 using spweb web spcontext.current.site.openweb new guid webguid splist list web.lists n...

如何刪除存在遠端GitHub庫某一目錄下的檔案

如何刪除存在遠端github庫某一目錄下的檔案 前幾天用sourcetree 在往github上傳專案 時遇到了乙個小問題,本來在遠端倉庫已經建立好該項目的目錄結構,只需要將我本地專案資料夾下的所有檔案直接傳到github對應的目錄結構下就可以了,直接訪問該目錄下的index.html就可以看到介面...

java遞迴實現統計某一目錄下檔案的個數

需求 統計某乙個指定目錄下檔案的個數,資料夾不統計在內。分析遞迴退出的條件 該檔案確實是乙個檔案而不是資料夾 該資料夾是乙個空目錄 除了上述兩個退出條件之後其他情況下都要不斷的進行遞迴,於是就有了以下的設計實現 遞迴統計該目錄下的檔案個數 只統計檔案,如果目錄下還有目錄一直往下查詢 param di...