Qt5 文件对话框选择文件后把文件移动到指定目录

Qt5 文件对话框选择文件后把文件移动到指定目录

项目构成

在这里插入图片描述

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <String>
#include <QStringList>
#include <QFileDialog>
#include <QDebug>
#include <QUrl>
#include <QDir>
#include <QProcess>
#include <QByteArray>
#include <QApplication>
#include <QRegularExpression>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    bool copyfile(QString sourcepath);
    ~MainWindow();

private slots:
    void on_ptn_openfile_clicked();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_ptn_openfile_clicked()
{
    QString filename=QFileDialog::getOpenFileName();//读取一个文件
    qDebug()<<"filrname是:"<<filename<<endl;
    copyfile(filename);


}

bool MainWindow::copyfile(QString sourcepath)
{
    //目的路径targetpath按照不同的程序需要来进行处理
    QProcess p(0);
    QString targetpath=QApplication::applicationDirPath();
    targetpath.remove(QRegularExpression("debug"));//为了调用photoa文件,要回退一级
    targetpath=targetpath+"photoa";//目的路径
    //构造命令
    sourcepath=sourcepath+" ";//源路径
    QString command=QString("copy ")+sourcepath+targetpath;

    command=command.replace("/","\\");
    qDebug()<<"命令是:"<<command<<endl;

    //p.start("command")好像是没法执行带/,\\的命令,会报错,只能ping,ipconig......
    //下面这个才成功的
    p.start("cmd", QStringList()<<"/c"<<command);
    p.waitForFinished();
    QString strTemp=QString::fromLocal8Bit(p.readAllStandardOutput());
    qDebug()<<strTemp;


}

运行前

在这里插入图片描述

运行程序

在这里插入图片描述
在这里插入图片描述

运行结束(1.jpg被成功复制到指定目录下)

在这里插入图片描述
踩坑:
//p.start(“command”)好像是没法执行带/,\的命令,会报错,只能ping,ipconig…
这程序里是用这个才成功的 p.start(“cmd”, QStringList()<<"/c"<<command);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值