Linux中tree命令的C語言實現

2021-08-13 07:54:46 字數 1462 閱讀 3848

一、tree命令是幹什麼的?

我們經常用tree命令來檢視指定目錄下的目錄檔案結構,並以樹狀結構顯示。

二、明確需求:

1、顯示目錄下的所有檔案

2、遇到目錄則要進入目錄,並顯示該目錄下的所有檔案

3、顯示需要使用樹狀層次顯示

三、程式設計思路:

<1>、很明顯這是乙個遞迴過程,遇到目錄則遞迴呼叫。

<2>、需要用到的函式

(1)、開啟目錄

dir *opendir( const char *name );

引數   name : 目錄路徑(可以是相對路徑也可以是絕對路徑)

返回值   :  指向引數指定目錄的第乙個目錄項的目錄流指標

(2)、讀取目錄

struct dirent *readdir(dir *dirp);

引數  dirp : 目錄流指標

注意: 當該目錄下的目錄項都讀取完之後,返回null

(3)、關閉目錄

int closedir( dir *dirp );

四、**實現

#include #include #include #include #include #include #include //自定義錯誤處理函式

void my_error(const char *strerr)

//輸出目錄結構

void printdirentstruct(char direntname, int level)

//迴圈讀取每個目錄項, 當返回null時讀取完畢

while((p_dirent = readdir(p_dir)) != null)

int i;

for(i = 0; i < level; i++)

printf("|--- ");

printf("%s\n", p_dirent->d_name);

//如果目錄項仍是乙個目錄的話,進入目錄

if(p_dirent->d_type == dt_dir)

}closedir(p_dir);

}int main(int argc , char *argu)

else if(argc == 2)

else

//輸出目錄結構

printf("%s\n", direntname);

printdirentstruct(direntname, 0);

return 0;

}

五、執行截圖

的tree用法 linux命令tree用法

tree命令用於以樹狀圖形方式列出目錄結構 指定目錄下的所有檔案 所有目錄 該命令預設未安裝,安裝命令 yum y install tree 語法 tree 選項 引數 常用選項 a all files are listed.顯示所有檔案和目錄 d list directories only.顯示目...

linux下的tree命令

zz tree 顯示磁碟目錄結構命令 功能 顯示指定驅動器上所有目錄路徑和這些目錄下的所有檔名。1.tree 當前目錄下的所有內容顯示 plain view plain copy lwnyls lwnyls desktop usr tree 2.tree l level 只顯示當前目錄下指定最大深度...

Linux中Groupadd命令的基本語法

你必須知道groupadd命令的基本語法。它的基本語法如下。groupadd option group name 注意 所有的命令都要在有sudo許可權或管理員使用者許可權 root使用者的情況下使用。如何在linux系統中使用groupadd命令建立群組 正如你在上一節中看到的groupadd命令...