命令行参数传入一个或者多个路径读取目录下的所有文件名并输出
Posted 森明帮大于黑虎帮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了命令行参数传入一个或者多个路径读取目录下的所有文件名并输出相关的知识,希望对你有一定的参考价值。
read_file.h
#pragma once
#pragma once
#include <iostream>
#include <io.h>
//#include <filesystem>
#include <vector>
#include<string>
//这个类表示获取所有的某个目录下的所有文件
class ReadFile
public:
ReadFile()
void GetFiles(std::string path, std::vector<std::string>& files);
//void Test();
void Test(std::string& directory);
;
read_file.cpp
#include"read_file.h"
void ReadFile::GetFiles(std::string path, std::vector<std::string>& files)
//文件句柄
intptr_t h_file = 0;
//文件信息,声明一个存储文件信息的结构体
struct _finddata_t file_info;
std::string dir; //字符串,存放路径
if ((h_file = _findfirst(dir.assign(path).append("\\\\*").c_str(), &file_info)) != -1) //若查找成功,则进入
do
if ((file_info.attrib & _A_SUBDIR))
if (0 != strcmp(file_info.name, ".") && 0 != strcmp(file_info.name, ".."))
GetFiles(dir.assign(path).append("\\\\").append(file_info.name), files);
else
files.push_back(dir.assign(path).append("\\\\").append(file_info.name));
while (0 == _findnext(h_file, &file_info));
_findclose(h_file);
//void ReadFile::Test()
void ReadFile::Test(std::string& directroy)
//std::string FilePath = "D:/visual stdio 2017代码";//自己设置目录
std::vector<std::string> file_name_list;
//std::string filepath = directroy;
//获取该路径下的所有文件
GetFiles(directroy, file_name_list);
for (int i = 0; i < file_name_list.size(); i++)
std::string path = file_name_list[i].c_str();
size_t pos = path.find_last_of('\\\\');
std::string str(path.substr(pos + 1));
std::cout << str << std::endl;
//std::cout << file_name_list[i].c_str() << std::endl;
main.cpp
#include"read_file.h"
int main(int argc, char* argv[])
for (int i = 1; i < argc; i++)
ReadFile rd;
std::string str(argv[i]);
rd.Test(str);
return 0;
以上是关于命令行参数传入一个或者多个路径读取目录下的所有文件名并输出的主要内容,如果未能解决你的问题,请参考以下文章
nodejs对于文件的一些基本操作-读取文件-文件的写入-文件的拷贝-文件追加信息-读取指定路径下的所有文件路径-解决一个传入行的文本换行效果不起作用的问题- 删除文件操作