c++--------获取某个路径下所有文件的文件名,读写TXT文件到新的文件
好久没写io操作了,手生了好多,为了防止自己老年痴呆,最简单实用的c++代码也push上来吧,
环境:mac,xcode(注意mac环境下Windows的函数不能用)
功能:打开一个文件目录,把所有文件名读取到一个TXT文件中
#include <iostream>
#include <vector>
#include <string>
#include <dirent.h>
#include <vector>
#include <string>
#include <fstream>
#include <iostream> using namespace std; int readfiledir()
{
struct dirent *ptr;
DIR *dir;
string PATH = "/Users/anitafang/Downloads/Datasets/300W/300w/01_Indoor";
dir=opendir(PATH.c_str());
vector<string> files;
cout << "文件列表: "<< endl;
while((ptr=readdir(dir))!=NULL)
{
//跳过'.'和'..'两个目录
if(ptr->d_name[] == '.')
continue;
//cout << ptr->d_name << endl;
files.push_back(ptr->d_name); }
//写入TXT文件
ofstream outfile;
outfile.open("/Users/anitafang/Downloads/Datasets/300W/300w/01_Indoor/list111.txt", ofstream::app); //myfile.bat是存放数据的文件名 for (int i = ; i < files.size(); ++i)
{
if(outfile.is_open())
{
outfile<<files[i] <<endl; //message是程序中处理的数据 }
else
{
cout<<"不能打开文件!"<<endl;
} //cout << files[i] << endl;
}
outfile.close();
closedir(dir);
return ;
}
评说:Windows底下操作更简单,还可以筛选某一类的文件名,比如图像等,见链接:http://blog.csdn.net/adong76/article/details/39432467
//获取特定格式的文件名
void GetAllFormatFiles( string path, vector<string>& files,string format)
{
//文件句柄
long hFile = ;
//文件信息
struct _finddata_t fileinfo;
string p;
if((hFile = _findfirst(p.assign(path).append("\\*" + format).c_str(),&fileinfo)) != -)
{
do
{
if((fileinfo.attrib & _A_SUBDIR))
{
if(strcmp(fileinfo.name,".") != && strcmp(fileinfo.name,"..") != )
{
//files.push_back(p.assign(path).append("\\").append(fileinfo.name) );
GetAllFormatFiles( p.assign(path).append("\\").append(fileinfo.name), files,format);
}
}
else
{
files.push_back(p.assign(path).append("\\").append(fileinfo.name) );
}
}while(_findnext(hFile, &fileinfo) == ); _findclose(hFile);
}
}
int main()
{
string filePath = "testimages\\water";
vector<string> files;
char * distAll = "AllFiles.txt"; //读取所有的文件,包括子文件的文件
//GetAllFiles(filePath, files); //读取所有格式为jpg的文件
string format = ".jpg";
GetAllFormatFiles(filePath, files,format);
ofstream ofn(distAll);
int size = files.size();
ofn<<size<<endl;
for (int i = ;i<size;i++)
{
ofn<<files[i]<<endl;
cout<< files[i] << endl;
}
ofn.close();
return ;
}
第二:打开文件,然后读出特定的某几行到新的文件中,用GetLine可以一行行读取文件信息。
//生成两个TXT文件分别存储png图像名和TXT图像名
void genfilename(){
cout<<"begin"<<endl;
ofstream pngfile;
ofstream ptsfile;
ifstream allfile;
ptsfile.open("/Users/anitafang/Downloads/Datasets/300W/300w/01_Indoor/ptslist.txt", ofstream::app); //
pngfile.open("/Users/anitafang/Downloads/Datasets/300W/300w/01_Indoor/pnglist.txt", ofstream::app); //
allfile.open("/Users/anitafang/Downloads/Datasets/300W/300w/01_Indoor/list.txt");
if(!allfile.is_open()){
cout<<"不能打开文件!"<<endl;
} string line;
int cont=;
//将文件中一行行的数据读入line中
while(getline(allfile,line)){
if(cont&) { pngfile<<line<<endl;
cout<<line<<endl; }//奇数save png list
else{
ptsfile<<line<<endl; } cont++;
}
ptsfile.close();
pngfile.close();
allfile.close();
}
c++--------获取某个路径下所有文件的文件名,读写TXT文件到新的文件的更多相关文章
- spring boot 打jar包,获取resource路径下的文件
前言:最近在spring boot项目静态类中获取resource路径下文件,在idea中启动都可以获取,但是打包后变成了jar包 就无法获取到. 我想到了两种方法,一种是根据http访问静态资源比如 ...
- Windows 批处理获取某路径下最新创建的文件的名称
批处理获取某路径下最新创建的文件的名称 by:授客 QQ:1033553122 echo off setlocal enabledelayedexpansion rem 设置文件所在目录 set sr ...
- Java 递归获取一个路径下的所有文件,文件夹名称
package com.readfile; import java.io.File; public class GetAllFiles { public static void main(String ...
- Python获取指定路径下所有文件的绝对路径
需求 给出制定目录(路径),获取该目录下所有文件的绝对路径: 实现 方式一: import os def get_file_path_by_name(file_dir): ''' 获取指定路径下所有文 ...
- C#中获取指定路径下特定开头和后缀的所有文件
场景 指定一个文件路径,获取当前路径下所有文件,并筛选出以指定内容开头和结尾的文件. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 ...
- JavaWeb学习——获取类路径下的资源
对于JavaWeb而言,获取类路径下的资源,就是获取classes目录下的资源. 获取资源的方式有两种,利用Class或ClassLoader. Class类的getResourceAsStream( ...
- java 获取某路径下的子文件/子路径
/** * 获取某路径下的子文件 * */ public static List<String> getSubFile(String path){ List<String> s ...
- Java中获取classpath路径下的资源文件
ClassLoader 提供了两个方法用于从装载的类路径中取得资源: public URL getResource (String name); public InputStream getRes ...
- C#中获取指定路径下指定后缀名的所有文件的路径的list
场景 指定一个路径和后缀名,查找这个路径下所有以此后缀名结尾的文件. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序猿 获取 ...
- java获取类路径下文件的绝对路径
获取文件绝对路径 在idea中,默认的当前路径是project的根路径,如果你使用idea的默认路径,只要离开idea换到其他位置,可能当前路径就不是project的根路径了. 使用一下通用方式的前提 ...
随机推荐
- Groovy 学习手册(6)
9. 不可变特性 不可变特性和函数式编程在一起就像是花生酱和果酱在一起一样.虽然没有必要非要在一起使用,但他们相处得很好. 在纯正的函数式语言中,每个函数对本身之外没有影响,即没有副作用.这意味着每次 ...
- 步进电机驱动器 和H桥
http://bbs.eeworld.com.cn/thread-489952-1-1.html
- youku视频
获取视频信息: http://v.youku.com/player/getPlayList/VideoIDS/153548356 <div class="player" id ...
- URL中#号的含义
一.#的涵义 #代表网页中的一个位置.其右面的字符,就是该位置的标识符.比如, http://www.example.com/index.html#print 就代表网页index.html的prin ...
- Android Studio开发-高效插件强烈推荐
Android Studio开发-高效插件强烈推荐 现在Android的开发者基本上都使用Android Studio进行开发(如果你还在使用eclipse那也行,毕竟你乐意怎么样都行).使用好And ...
- yml配置文件
1 yaml配置文件中是以空格来区分是否是同一层级.在键值对的冒号之后要有空格. 2 属性值:数值.字符串.bool 值,直接写即可.双引号会将特殊字符进行转义,例如:"nice \n go ...
- Vue的计算属性和侦听器
1 计算属性:他是根据对象已有的属性计算出新的属性值.具有缓存的功能,如果原始属性不变,则用缓存.否则,重新计算. 前端 <form> <label>姓</label&g ...
- js获取IP地址方法总结
js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338.html 1,js取得IP地址 ...
- 深入理解Linux内核-块设备驱动程序
扇区: 1.硬盘控制器将磁盘看成一大组扇区2.扇区就是一组相邻字节3.扇区按照惯例大小设置位512字节4.存放在块设备中的数据是通过它们在磁盘上的位置来标识,即首个扇区的下标和扇区的数目.5.扇区是硬 ...
- java集群优化——ORM框架查询优化原理
众所周知,当下的流行的企业级架构中,ORM一直是最基础的部分,在架构设计的底层.对逻辑层提供面向对象的操作支持,而事实总是和我们预想的有所偏差,ORM在提供了较好的操作体验时,也流失了一部分原生SQL ...