用c++读取文件夹中的所有文件名

//头文件,注意要加stdafx.h和io.h等

#include "stdafx.h"
#include <io.h>
#include <vector>
using namespace std;

下面这个子函数计算了当前指定path文件夹下的所有文件(包括迭代子文件夹中的文件)

//获取子文件名的子函数
//path指向要读取的文件夹路径
//files是一个字符串向量,存储文件夹内的文件名

void getFiles( string path, vector<string>& files )
{
    //文件句柄
    long   hFile   =   0;
    //文件信息
    struct _finddata_t fileinfo;
    string p;
    if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)
    {
        do
        {
            //如果是目录,迭代之
            //如果不是,加入列表
            if((fileinfo.attrib &  _A_SUBDIR))
            {
                if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)
                    getFiles( p.assign(path).append("\\").append(fileinfo.name), files );
            }
            else
            {
                files.push_back(p.assign(path).append("\\").append(fileinfo.name) );
            }
        }while(_findnext(hFile, &fileinfo)  == 0);
        _findclose(hFile);
    }
}
//main函数内调用

char * filePath = "D:\\wenjian";  //主文件夹路径
    vector<string> files;  //子文件夹容器
    ////获取该路径下的所有文件
    getFiles(filePath, files );

说到文件路径顺便说一下文件路径的申明一般是char* path 或是  char path[100],也有可能加入<string.h>后的 String path

如果将新的读出来的files向量中的某一个文件名files[i]加入path,那么字符串的赋值 可以直接用 String本身的构造函数:

String path(files[i]);

以下代码未经验证,单纯补充文章完整性

附上一段《只读取某给定路径下的当前文件夹名》(有两个版本)

时间: 2024-10-10 09:16:49

用c++读取文件夹中的所有文件名的相关文章

读取文件夹中所有的文件

class Program { static double size = 2.443438914027149; static void Main(string[] args) { if (!System.IO.Directory.Exists("Img")){ System.IO.Directory.CreateDirectory("Img"); Console.WriteLine("已创建Img目录,请把需要处理的图片放到该目录下"); Con

c# -- 读取文件夹中的所有文件(备忘)

读取选取的文件夾下的所有.txt文件 private void button1_Click(object sender, EventArgs e){ if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { string foldPath = folderBrowserDialog1.SelectedPath; MessageBox.Show("已选择文件夹:" + foldPath, "选择文件夹提示"

关于读取文件夹中的图片问题

每次写代码都离不开读取文件夹中的图片,每次都要重新写一遍,很是忧伤..... 之前在百度输入此问题时,会得到很多答案,然后根据别人的思路,可以随便就把代码写出来,所以也没积累,... 如今事情多了,感觉这种做法真的很浪费时间,还是稍微做下整理吧.... 先贴几个链接: http://blog.csdn.net/yimingsilence/article/details/40555861

使用ftp读取文件夹中的多个文件,并删除

public class FTPUtils { private static final Logger LOG = LoggerFactory.getLogger(FTPUtils.class); /** * 获取FTPClient对象 * * @param ftpHost FTP主机服务器 * @param ftpPassword FTP 登录密码 * @param ftpUserName FTP登录用户名 * @param ftpPort FTP端口 默认为21 * @return */ p

循环读取文件夹中的图片matlab代码

参考:http://blog.csdn.net/guoxiaojie_415/article/details/21317323:http://blog.csdn.net/qikaihuting/article/details/70244416 本篇博文仅针对于循环读取指定文件夹下的图片文件,不涉及深度和层度遍历. Function函数 function [subdirpath] = RangTraversal(strPath) maindir = strPath; //strPath是strin

使用java读取文件夹中文件的行数

使用java统计某文件夹下所有文件的行数 经理突然交代一个任务:要求统计某个文件夹下所有文件的行数.在网上查了一个多小时没有解决.后来心里不爽就决定自己写一个java类用来统计文件的行数,于是花了两个小时将代码写出(可见我的java功底还是挺烂的).虽然有很多有待改进的地方,依然有纪念意义. 本java类的核心是通过BufferedReader类的readLine()方法,间接的统计行数:通过递归遍历文件. 这个类只是写来完成任务的.结果不是很严谨,许多情况并没考虑到:比如判断想读取某一类文件怎

417读取文件夹中的所有子目录信息doc。。。

package lld; import java.io.File;import java.util.ArrayList;import java.util.Arrays; public class L4 { public static String [] getFileName(String path) { File file = new File(path); String [] fileName = file.list(); return fileName; } public static v

python 语料处理(从文件夹中读取文件夹中文件,分词,去停用词,去单个字)

# -*- coding:utf8 -*- import os import jieba def splitSentence(inputFile): fin = open(inputFile, 'r') #以读的方式打开文件 global fout #以写得方式打开文件 #print fin global stop for eachLine in fin: #print eachLine line = eachLine.strip()#.decode('utf-8', 'ignore') #去除

sharepoint 读取文件夹中所有的数据

private void BindData() { SPWeb web = SPContext.Current.Web; SPList list = web.Lists["我的文档"]; SPListItemCollection items = GetItems(list); GridView1.DataSource = items.GetDataTable(); GridView1.DataBind(); } private SPListItemCollection GetItems