【c++基础】遍历目录并写入txt文件-linux

前言

 

复制代码
/******************************************************************************
* File: get_traindata.cpp
* Coder: AMY
* Email: happyamyhope@163.com
* Data: 20181107
*******************************************************************************/
#include <iostream>  
#include <stdio.h>  
#include <unistd.h>  
#include <dirent.h>  
#include <stdlib.h>  
#include <sys/stat.h>  
#include <string.h>  
#include <fstream>

//Global Variables.
char dir[100] = "/trainimg/right_eye/";  
int const MAX_STR_LEN = 200;  
std::ofstream traindata;
//Show all files under dir_name, do not show directories.  
void showAllFiles(const char* dir_name)  
{
     std::string path(dir_name);//or path = dir_name;
    //check the parameter.
    if( NULL==dir_name )  
    {  
        std::cout << "dir_name is null..." << std::endl;  
        return;  
    }  
    //check if dir_name is a valid dir.  
    struct stat s;  
    lstat(dir_name, &s);  
    if( !S_ISDIR(s.st_mode) )  
    {  
        std::cout << "dir_name is not a valid directory..." << std::endl;  
        return;  
    }  
    struct dirent* filename;//return value for readdir().  
    DIR* dir;//return value for opendir().  
    dir = opendir(dir_name);  
    if( NULL==dir )  
    {  
        std::cout << "Can not open dir..." << dir_name << std::endl;  
        return;  
    }  
    std::cout << "Successfully opened the dir..." << std::endl;  
    //read all the files in the dir. 
    while( (filename=readdir(dir)) != NULL )  
    {  
        //get rid of "." and ".."  
        if( strcmp(filename->d_name, ".")==0 || strcmp(filename->d_name, "..")==0 )  continue;  
        std::cout << filename->d_name << std::endl;  
        traindata << path+filename->d_name << std::endl;
        traindata << 1 << std::endl;
    }  
}   

int main()  
{  
    traindata.open("traindata.txt", std::ios::app);
    showAllFiles(dir);  
    traindata.close();
    return 0;  
}
View Code
复制代码

 

参考

1.

https://www.itency.com/topic/show.do?id=310867

posted on   鹅要长大  阅读(1111)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】

导航

< 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

统计

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