c語言整理目錄的操作

2021-10-01 15:23:11 字數 3630 閱讀 9499

1. getcwd庫函式使用: 很少使用  獲取當前工作目錄  

char * getcwd(char * buf,size_t size);

#include#include#includeint main( )

/root/zty
效果與pwd 命令一樣 

chdir        很少使用  int chdir(const char *path);

返回值:0-切換成功;非0-失敗。

#include#include#includeint main()

~

[root@izuf6g6gmwubu9o02mecvyz zty]# ./88          

/root/zty1

//可以看出 chdir 切換目錄命令 並且用getcwd 獲取 並列印

但這並不影響 正在使用的終端目錄 也就是說不能改變正在使用的目錄

目錄的建立與刪除

int mkdir(const char *pathname, mode_t mode);

#include#include#includeint main()

結果如圖:

可以按照日期去建立目錄 用於存放當天的**資料   如  mkdir  20191221 

int rmdir(const char *pathname);

#include#include#includeint main()

經過確認 該目錄已經刪除 。

獲取目錄中的檔案列表

如 ls 命令

標頭檔案:#include

opendir庫函式

dir *opendir(const char *pathname);    //dir是目錄指標,

讀取目錄的函式readdir的宣告

struct dirent *readdir(dir *dirp);   呼叫一次  返回乙個結構體的位址,存放這次呼叫讀取到的資訊。

關閉目錄的函式closedir的宣告。

int closedir(dir *dirp);

資料結構:

結構體:

struct dirent    在dirent.h標頭檔案裡,定義結構體指標直接呼叫即可。eg   struct   dirent  *ii

unsigned char d_type;          // the type of d_name 檔案型別   8-常規檔案,4-目錄。

d_name 檔案或者目錄名字

d_type  檔案型別

char d_name [name_max+1];  // file name檔名,最長255字元   檔名或者目錄

獲取目錄中的檔案調取示範:

#include#includeint main ()

closedir(dir);

}

name=book61.c,type=8

name=81.c,type=8

name=84,type=8

name=..,type=4

name=4.c,type=8

name=book39.c,type=8

name=booksz2.c,type=8

name=40.c,type=8

name=boo38.c,type=8

name=90,type=8

name=public.c,type=8

name=book22.c,type=8

#include#includeint main ()

dir *dir;

dir=opendir(ar**[1]);

if(dir==0)

return -1;

struct dirent *ii;

while(1)

closedir(dir);

}

./2 root     root指的是目錄名稱

./2 root

name=89.c,type=8

name=74.c,type=8

name=87.c,type=8

name=book22,type=8

name=makefile,type=8

name=book38,type=8

name=book9.c,type=8

name=85.c,type=8

ls -l  檔案型別 

-rw-r--r-- 1 root root 2196976 11月 26 22:28 public

-rw-r--r-- 1 root root 1689 5月 14 09:15 _public.c

-rw-r--r-- 1 root root 2832 2月 15 21:12 public.c

-rw-r--r-- 1 root root 0 5月 14 13:08 _public.h

-rw-r--r-- 1 root root 1738 5月 14 00:02 public.h

-rw-r--r-- 1 root root 0 3月 27 12:33 q.c

實際開發中需要列出該目錄下以及它的子目錄下的全部檔案

#include#include#includeint readdir(const char *strpathname);

int main (int argc,char *ar**)

readdir(ar**[1]);

}int readdir(const char *strpathname)

if(catalog->d_type==8)

printf("name=%s,type=%s\n",strpathname,catalog->d_name);

} closedir(dir);

}

name=/root/zty,type=89.c

name=/root/zty,type=74.c

name=/root/zty,type=87.c

name=/root/zty,type=book22

name=/root/zty,type=makefile

name=/root/zty,type=book38

name=/root/zty,type=book9.c

name=/root/zty,type=85.c

name=/root/zty,type=93.c

name=/root/zty,type=91.c

name=/root/zty,type=40

C語言目錄操作

1.在linux下要判斷乙個路徑是否是目錄,及遍歷這個路徑下的所有檔案,可以使用以下方式 主演使用的函式是 s isdir 判斷是否是目錄,傳入引數是stat.st mode dir opendir const char 開啟指定路徑 struct dirent readdir dir 開啟指定目錄...

C語言目錄操作

五 應用經驗 六 課後作業 目錄的操作不論是在嵌入式還是應用軟體程式設計都是必不可少的,不同的開發語言可能略有不同,本章節主要是討論在linux系統下目錄的一系列操作,以我的個人經驗,建立目錄和列出目錄中的檔案這兩個功能用得最多。在shell中我們可以直接輸入命令pwd來顯示當前的工作目錄,在c程式...

C語言目錄操作

五 應用經驗 六 課後作業 目錄的操作不論是在嵌入式還是應用軟體程式設計都是必不可少的,不同的開發語言可能略有不同,本章節主要是討論在linux系統下目錄的一系列操作,以我的個人經驗,建立目錄和列出目錄中的檔案這兩個功能用得最多。在shell中我們可以直接輸入命令pwd來顯示當前的工作目錄,在c程式...