C list diretory and files recursively

复制代码
//C list directory and files recursively

#include <dirent.h>
#include <fstream>
#include <string.h> 
#include <unistd.h>

void Util::listdir(const char *name, int indent)
{
    DIR *dir;
    struct dirent *entry;

    if (!(dir = opendir(name)))
    {
        return;
    }

    while ((entry = readdir(dir)) != NULL)
    {
        if (entry->d_type == DT_DIR)
        {
            char path[1024];
            if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0)
            {
                continue;
            }

            snprintf(path, sizeof(path), "%s/%s", name, entry->d_name);
            printf("%*s[%s]\n", indent, "", entry->d_name);
            listdir(path, indent + 2);
        }
        else
        {
            printf("%*s- %s\n", indent, "", entry->d_name);
        }
    }
    closedir(dir);
} 


int main(int args,char **argv)
{
    try
    {
        listdir(argv[1],atoi(argv[2]));
    }
    catch(const std::exception& e)
    {
        std::cerr << e.what() << '\n';
    } 
} 
复制代码
time ./h1 ../ 0

 

posted @   FredGrit  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2020-06-08 C# FileSystemWatcher
2020-06-08 Access Volumn via extern and invoke win 32 dll
2020-06-08 Change file readonly property File.SetAttribute and new FileInfo readonly property
2020-06-08 C# zip folder
2020-06-08 GZipStream Compress And Decompress
2020-06-08 C# list top 20 biggest files via given path
2019-06-08 System.InvalidOperationException: 'Cannot create more than one System.Windows.Application instance in the same AppDomain.'
点击右上角即可分享
微信分享提示