您的位置:首页 > 编程语言 > Qt开发

使用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";

     }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: