2012年9月20日 星期四

[C]讀取指定路徑下檔案清單

最近寫C 突然需要去擷取 路徑下的檔案目錄
就隨手在網路上 搜尋了一下

來源: http://www.cnblogs.com/beauty/archive/2010/09/09/1822535.html

主要是 使用 dirent 這個 struct
但讀出來的 檔案路徑 會包含 ".",".."等隱藏檔的路徑
簡單說會等於在linux底下" ll -a "輸出

如不需要此隱藏內容 則 記得處理


#include

struct dirent *ent = NULL;

DIR *pDir;
 
if(EQ(pDir = opendir(file_path),NULL))
{
    LOG(LOG_INFO, "error");
    return 0;
}
 
chdir(file_path); //如要讀取目錄下檔案 記得切換至當前目錄

while(NEQ(ent = readdir(pDir),NULL))
{
    strcpy(file_name,ent->d_name);

    if(EQ(*file_name,'.')) //遇到 隱藏檔 則略過
    {
      continue;
    }
  
    if(NEQ(stat(file_name,&st_file),0))
    {
      LOG(LOG_INFO, "Read header file error");
      return 0;
    }
}

沒有留言:

張貼留言

留言前請三思,禁止任何色情暴力等不當言語