c++ 列出当前目录下的目录与文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <dirent.h>
#include <cstring>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
std::string listFilesAndDirs(const char* path, int& len) {
    DIR* dirp = opendir(path);
    if (dirp == NULL) {
        return 0;
    }
    std::stringstream FileStream;
    int count = 0;
    struct dirent* direntp = readdir(dirp);
    while (direntp != NULL) {
        const char* name = direntp->d_name;
         
        if (strcmp(name, ".") != 0 && strcmp(name, "..") != 0) {
            if (direntp->d_type == DT_DIR) {
                FileStream<< "[DIR] " << name << std::endl;
            } else {
                FileStream << "[FILE] " << name << std::endl;
            }
            count++;
        }
         
        direntp = readdir(dirp);
    }
     
    closedir(dirp);
    len = count;
    return FileStream.str();
}
int main() {
    const char* path = "."; // 当前目录
    int len = 0;
    std::string strfile;
    strfile = listFilesAndDirs(path,len);
    std::cout<<strfile<<std::endl;
    std::cout << "len is: " <<len <<std::endl;
    return 0;
}

  

posted on   lydstory  阅读(97)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2020-11-18 root@localhost问题
2020-11-18 multipart 修改配置文件 追忆啊
2020-11-18 添加jar, File-工程结构 modules
2020-11-18 org.apache.commons.fileupload
2019-11-18 dlopen 找不到
2019-11-18 思想家:很多博士都是顾问
2019-11-18 gsoup webservice

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示