使用Qt批量生成文件路径列表到txt文件中
2016-08-07 21:48
477 查看
目的:一些项目需要一个txt或者dat文件来指示数量成千上百的文件路径位置,要是手工输入的话会非常麻烦,因此想到了使用软件把文件路径直接写入文件中。
bool MainWindow::rename() //打开一个文件夹,并选择需要按编号改名的文件
{
int i=1;
QStringList list=QFileDialog::getOpenFileNames(this,"select",QDir::currentPath(),"*.jpg"); //打开对话框,选择要改名的文件(多选)
if(list.count()<1)
return false;
QString path=QString(list.at(0));
QString subpath=path.mid(0,path.lastIndexOf("/")+1); //由于上面获取到的是文件的路径,因此索引到最后一个斜降号,取出文件夹路径。不然下面直接改名的话会把原来文件夹的文件全部移到项目的Debug或者Release文件夹中。
foreach(QString str,list)
{
QFile file(str);
if(file.rename(QString("%1%2.jpg").arg(subpath).arg(i))==false) //我这里是把文件改成按数字递增的文件名,要更改的文件格式是jpg
{
return false;
break;
}
file.close();
i++;
}
}
void MainWindow::gennerate() //打开一个文件夹,把所有文件的路径写到一个TXT文本文件中
{
QStringList list=QFileDialog::getOpenFileNames(this,"select",QDir::currentPath(),"*.jpg");
if(list.count()<1)
return;
QString path=QString(list.at(0));
QString subpath=path.mid(0,path.lastIndexOf("/")+1);
subpath.replace("/","//");
QString fileinfo;
QFile file(QString(subpath+"info.txt"));
file.open(QIODevice::WriteOnly);
if(file.isOpen())
{
foreach(QString str,list)
{
fileinfo=subpath+(str.right(str.length()-str.lastIndexOf("/")-1)); //文件路径信息
file.write(fileinfo.toLocal8Bit()); //编码自己选
file.write("\r\n"); //换行
fileinfo="";
}
file.close();
}
else
{
qDebug()<<"open failed";
}
}
bool MainWindow::rename() //打开一个文件夹,并选择需要按编号改名的文件
{
int i=1;
QStringList list=QFileDialog::getOpenFileNames(this,"select",QDir::currentPath(),"*.jpg"); //打开对话框,选择要改名的文件(多选)
if(list.count()<1)
return false;
QString path=QString(list.at(0));
QString subpath=path.mid(0,path.lastIndexOf("/")+1); //由于上面获取到的是文件的路径,因此索引到最后一个斜降号,取出文件夹路径。不然下面直接改名的话会把原来文件夹的文件全部移到项目的Debug或者Release文件夹中。
foreach(QString str,list)
{
QFile file(str);
if(file.rename(QString("%1%2.jpg").arg(subpath).arg(i))==false) //我这里是把文件改成按数字递增的文件名,要更改的文件格式是jpg
{
return false;
break;
}
file.close();
i++;
}
}
void MainWindow::gennerate() //打开一个文件夹,把所有文件的路径写到一个TXT文本文件中
{
QStringList list=QFileDialog::getOpenFileNames(this,"select",QDir::currentPath(),"*.jpg");
if(list.count()<1)
return;
QString path=QString(list.at(0));
QString subpath=path.mid(0,path.lastIndexOf("/")+1);
subpath.replace("/","//");
QString fileinfo;
QFile file(QString(subpath+"info.txt"));
file.open(QIODevice::WriteOnly);
if(file.isOpen())
{
foreach(QString str,list)
{
fileinfo=subpath+(str.right(str.length()-str.lastIndexOf("/")-1)); //文件路径信息
file.write(fileinfo.toLocal8Bit()); //编码自己选
file.write("\r\n"); //换行
fileinfo="";
}
file.close();
}
else
{
qDebug()<<"open failed";
}
}
相关文章推荐
- Caffe学习笔记(二):使用Python生成caffe所需的lmdb文件和txt列表清单文件
- UNIX/LINUX环境中使用MATLAB获取指定路径下特定文件列表的方法
- 使用CMake生成包含相对路径的Ogre1.7工程文件
- c++遍历查找文件夹路径下的所有文件(比如.txt) 使用的是MFC的CFileFind类
- 使用pycaffe生成train.prototxt、test.prototxt文件
- linux 获取文件名称并生成列表txt的方法
- 将文件夹中的图像路径自动生成txt文件(便于opencv遍历处理图像)
- linux 获取文件名称并生成列表txt
- 使用pycaffe生成solver.prototxt文件并进行训练
- 使用Python将TXT文本内容读取后生成指定XML格式的文件
- linux下使用CmakeLists.txt生成makefile文件进行编译
- Ubuntu中获取文件名称,并生成列表txt
- 生成某种文件的路径列表
- 使用BAT文件读文件路径到TXT
- 使用Python将TXT文本内容读取后生成指定XML格式的文件
- 使用gvim && txt2tags生成google code wiki 格式文件
- Labview生成exe可执行文件后相对路径无法使用
- C#控制台基础 file.readalltext使用相对路径与绝对路径去读取 与exe在同一目录下的txt文件
- 使用MATLAB生成文件列表(供caffe生成lmdb使用)
- win下使用shell使用文件夹中的文件生成文件列表