国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C/C++獲取目錄下的文件列表信息

2020-01-26 15:36:10
字體:
來源:轉載
供稿:網友

1.數據結構

復制代碼 代碼如下:

struct dirent
{
    long d_ino;                 /* inode number 索引節點號 */
    off_t d_off;                /* offset to this dirent 在目錄文件中的偏移 */
    unsigned short d_reclen;    /* length of this d_name 文件名長 */
    unsigned char d_type;        /* the type of d_name 文件類型 */   
    char d_name [NAME_MAX+1];   /* file name (null-terminated) 文件名,最長255字符 */
}

struct __dirstream
  {
    void *__fd;                        /* `struct hurd_fd' pointer for descriptor.  */
    char *__data;                /* Directory block.  */
    int __entry_data;                /* Entry number `__data' corresponds to.  */
    char *__ptr;                /* Current pointer into the block.  */
    int __entry_ptr;                /* Entry number `__ptr' corresponds to.  */
    size_t __allocation;        /* Space allocated for the block.  */
    size_t __size;                /* Total valid data in the block.  */
    __libc_lock_define (, __lock) /* Mutex lock for this structure.  */
  };

typedef struct __dirstream DIR;

2.程序示例
其中程序中win不支持文件類型(d_type),可以根據文件名稱后綴來判斷文件類型;linux可以直接使用d_type判斷是目錄還是文件。

復制代碼 代碼如下:

#include <sys/types.h>
#include <dirent.h>
#include <unistd.h>
#include <stdio.h>

int main(){
    DIR    *dir;
    struct    dirent    *ptr;
    dir = opendir("."); ///open the dir

    while((ptr = readdir(dir)) != NULL) ///read the list of this dir
    {
        #ifdef _WIN32
            printf("d_name: %s/n", ptr->d_name);
        #endif
        #ifdef __linux
            printf("d_type:%d d_name: %s/n", ptr->d_type,ptr->d_name);
        #endif
    }
    closedir(dir);
    return 0;
}

程序輸出:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凤阳县| 邹城市| 离岛区| 东山县| 肃北| 大化| 梅河口市| 清流县| 达拉特旗| 五华县| 斗六市| 钟山县| 苍南县| 明溪县| 安福县| 电白县| 陆丰市| 临猗县| 娱乐| 松桃| 周口市| 双江| 安福县| 革吉县| 无为县| 霍城县| 新野县| 田林县| 合江县| 玛纳斯县| 藁城市| 调兵山市| 罗定市| 定襄县| 渭南市| 永城市| 腾冲县| 彭泽县| 嘉鱼县| 洛隆县| 仙桃市|