关于c ++:Qt – 将文件从一个目录复制到另一个目录

Qt - copy a file from one directory to another

我正在使用QT,我无法找到如何将文件从一个目录复制到另一个目录? 我怎样才能做到这一点?


您可以使用提供复制方法的QFile。

1
QFile::copy("/path/file","/path/copy-of-file");


如果存在目标文件,则QFile::copy将不起作用。 解决方案是验证目标文件是否存在,然后将其删除:

1
2
3
4
5
6
if (QFile::exists("/path/copy-of-file"))
{
    QFile::remove("/path/copy-of-file");
}

QFile::copy("/path/file","/path/copy-of-file");


以下代码在Windows中用于指定的原因。 这将设置指定驱动器的路径并创建您在Under UI Mode下创建的文件夹。 然后将文件从源复制到目标。 这里的源是安装目录,其中包含一些用于绘制曲线的文件。 用户不会修改此文件。 他们只是使用它。

因此,这可以作为从安装目录到指定文件夹的副本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void MainWindow::on_pushButton_2_clicked()
{
    QString str5 = ui->lineEdit->text();
    QString src ="."; QString setpath;
    QDir dir(src);
    if(!dir.exists()){
        return;
    }
    dir.cdUp();
    //dir.cdUp();
    setpath ="E://";
    dir.setPath(setpath);
    QString dst_path = str5 + QDir::separator() ;
    dir.mkpath(dst_path);
    dir.cd(dst_path);
    QString filename ="gnu.plt";
    QString filename2 ="Load curve.plt";
    QString filename3 ="tube temp.plt";
    QFile file(filename);
    QFile file1(filename2);
    QFile file2(filename3);
    file.copy(src+QDir::separator()+filename, setpath+QDir::separator()+str5+QDir::separator()+filename);
    file1.copy(src+QDir::separator()+filename2, setpath+QDir::separator()+str5+QDir::separator()+filename2);
    file2.copy(src+QDir::separator()+filename3, setpath+QDir::separator()+str5+QDir::separator()+filename3);
}