[問題] 關於opendir與readdir(系統程式)

看板C_and_CPP (C/C++)作者 (小星)時間16年前 (2010/03/14 17:13), 編輯推噓2(205)
留言7則, 3人參與, 最新討論串1/1
我在windows 用gcc compile 以C來寫 以下是我的程式碼 #include <stdlib.h> #include <stdio.h> #include<sys/types.h> #include<dirent.h> int main(int argc, char *argv[]) { DIR*dp; struct dirent *dirp; struct dirent{ char d_name [100]; }; FILE* TXT; char name[100]; dp=opendir(argv[1]); while ( (dirp = readdir(dp)) != NULL) { printf("%s\n",dirp->d_name); /*TXT=fopen(????,"r"); if(TXT==NULL)printf("Open error\n"); free(TXT);*/ } closedir(dp); return 0; } 我能成功讀取到**第一層**資料夾內的檔案 我想請問 問題一: 如果我讀到一個檔案 我想要讀取裡面的內容 例如TXT檔裡面有I LOVE YOU這些字 我該如何讀取他? 我在開檔的地方不曉得該怎麼表示(打????的地方) 問題二: 我只會讀到第一層資料夾裡面的內容 如果還有子資料夾 我要怎麼從readdir回傳的值判斷這是個資料夾而不是檔案並進入繼續讀取呢? 目前他都只會讀取到子資料夾的名字而已 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.70.25.130 ※ 編輯: didayo 來自: 219.70.25.130 (03/14 17:15)

03/14 19:55, , 1F
struct dirent有檔案屬性的欄位
03/14 19:55, 1F

03/14 22:15, , 2F
不懂樓上的意思@@請問是說struct裡面有欄位跟檔案有關
03/14 22:15, 2F

03/14 22:15, , 3F
然後呢@@?
03/14 22:15, 3F

03/14 23:32, , 4F
t大說的是每個file會有一個dirent結構存取該file的屬性
03/14 23:32, 4F

03/14 23:33, , 5F
在此dirent中,有個欄位是顯示該檔案是什麼類型
03/14 23:33, 5F

03/14 23:34, , 6F
例如說是f(ile),d(irectory),p(ipe),s(ocket)之類的
03/14 23:34, 6F

03/14 23:35, , 7F
你所使用的d_name也是dirent其中一個屬性啊 @@
03/14 23:35, 7F
文章代碼(AID): #1BdAZIIR (C_and_CPP)
文章代碼(AID): #1BdAZIIR (C_and_CPP)