1樓:手機使用者
c語言本身沒有提供象dir_list()這樣的函式來列出某個目錄下所有的檔案。不過,利用c語言的幾個目錄函式,你可以自己編寫乙個dir_list()函式。
首先,標頭檔案dos.h定義了乙個find_t結構,它可以描述dos下的檔案資訊,包括檔名、時間、日期、大小和屬性。其次,c編譯程式庫中有_dos_findfirst()和_dos_findnext()這樣兩個函式,利用它們可以找到某個目錄下符合查詢要求的第乙個或下乙個檔案。
dos_findfirst()函式有三個引數,第乙個引數指明要查詢的檔名,例如你可以用「*.*」指明要查詢某個目錄下的所有檔案。第二個引數指明要查詢的檔案屬性,例如你可以指明只查詢隱含檔案或子目錄。
第三個引數是指向乙個find_t變數的指標,查詢到的檔案的有關資訊將存放到該變數中。
dos_findnext()函式在相應的目錄中繼續查詢由_dos_findfirst()函式的第乙個引數指明的檔案。_dos_findnext()函式只有乙個引數,它同樣是指向乙個find_t變數的指標,查詢到剛檔案的有關資訊同樣將存放到該變數中。
利用上述兩個函式和find_t結構,你就可以遍歷磁碟上的某個目錄,並列出該目錄下所有的檔案,請看下例:
#include #include #include #include #include #include typedef struct find_t file_block
void main(void);
void main(void){file_block f-block; /* define the find_t structure variable * /
int ret_code; / * define a variable to store the return codes * /
/ * use the "*.*" file mask and the 0xff attribute mask to list
all files in the directory, including system files, hidden
files, and subdirectory names. * /
/* the _dos_findfirst() function returns a 0 when it is successful
and has found a valid filename in the directory. * /
while (ret_code == 0){/* print the file's name * /
printf(" %-12s\n, f_block, name);
/ * use the -dos_findnext() function to look
2樓:匿名使用者
用c語言列出目錄下的檔案,在linux下可採用readdir()函式來實現,**實現過程為:
開啟目錄
迴圈讀目錄,輸出目錄下檔案
關閉目錄指標
#include
#include
int main()
(void) closedir(dirp); //關閉目錄
return 0;
}在windows下,**如下:
#include
#include
void printdir( const char* path )
int nret = (hnd <0 ) ? -1 : 1;
while ( nret >= 0 )
_findclose( hnd ); // 關閉當前控制代碼
}void main()
long _findfirst( char *filespec, struct _finddata_t *fileinfo );
// 功 能 : 提供與filespec指定入口泛式匹配的第乙個檔案.通常後繼用_findnext()函式來完成某泛式下的檔案遍歷.
// 標頭檔案 : #include
// 參 數 : filespec - 目標檔案規範,可以包含萬用字元
// fileinfo - 檔案資訊buffer
// 返回值 : 成功返回唯一的搜尋控制代碼
// 出錯返回-1,且設定errno為如下值:
// enoent 該泛式無法匹配
// einval 無效檔名
int _findnext( long handle, struct _finddata_t *fileinfo );
// 功 能 : 按照前面_findfirst中的泛式規則,查詢下乙個符合該泛式的檔案,並以此為依據修改fileinfo中的值
// 標頭檔案 : #include
// 參 數 : long handle - 搜尋控制代碼(通常由緊靠其前的_findfirst()返回)
// fileinfo - 檔案資訊buffer
// 返回值 : 成功返回0
// 出錯返回-1
int _findclose( long handle );
// 功 能 : 關閉搜尋控制代碼並釋放相應資源
// 標頭檔案 : #include
// 參 數 : long handle - 搜尋控制代碼(通常由緊靠其前的_findfirst()返回)
// 返回值 : 成功返回0
// 出錯返回-1
c語言怎麼讀取某一資料夾下的所有資料夾和檔案?
3樓:14清榼眠
讀取的**方式如下:
int main()
printf("%s\n", find.name);
return 0;
}用c語言讀取目錄中的檔名的方法:
1、如果是在window環境下,可以用一下方法:
使用stdlib.h標頭檔案宣告的system()函式,呼叫系統命令dir,把c:目錄下檔案列表寫入檔案dir.txt中
2、使用dirent.h標頭檔案中宣告的opendir(),readdir()函式;
3、如果沒有dirent.h,可以使用io.h標頭檔案中宣告的_findfirst(),_findnext()函式:
4樓:cookie張贊
#include
#include
void main()
c:\下的所有資料夾,子資料夾裡所有檔案,轉向到 文字檔案 a.log 裡。
格式:c:\aaa\bbb\ccc\...
只要資料夾命令:
dir /d c: /b /ad
只要資料夾命令,含子資料夾:
dir /d c: /b /ad /s
c語言列出100以內的素數,C語言,列出100以內的素數
胡說八道小鬼 如下 include int main void int i,j,k printf d n 2 2肯定是素數 em02 for i 1 i 100 i 2 for j 2 jif i j 0 break if i j printf d n i return 0 從console輸入乙個...
c如何將使用完的儲存到指定目錄下的資料夾裡
string txt textbox1.text string filename temp.txt 檔名,可以帶路徑 system.io.streamwriter sw new system.io.streamwriter filename sw.write txt sw.close 選擇選單欄的 ...
c 中的state怎樣使用,c語言中state是什麼意思
作用 允許一個物件在其內部狀態改變時改變它的行為.state模式的定義 不同的狀態,不同的行為 或者說,每個狀態有著相應的行為.何時使用?state模式在實際使用中比較多,適合 狀態的切換 因為我們經常會使用if else if else 進行狀態切換,如果針對狀態的這樣判斷切換反覆出現,就要聯想 ...