使用Qt批量生成文件路径列表到txt文件中

目的:一些项目需要一个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";
     }
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值