使用相对路径C++在运行时复制现有文件

问题描述 投票:0回答:1

我有一种将数据保存到二进制文件中的方法。我正在尝试对这个方法进行单元测试。这就是为什么我为自己制作了一个控制器二进制文件,其中包含我应该使用我的方法保存的数据。

我的文件夹树如下所示:

C:.
├───include
    └─── header.h
├───source
│   └─── source.cpp
└───tests
    └───Test
        ├───data
        │   └── controller.bin
        └─── unitary_test.cpp

在unitary_test.cpp 中运行测试时,我想将controller.bin 复制到我创建的临时文件夹中,该文件夹是我使用测试中的方法创建文件的文件夹。问题是我无法使用相对路径复制此文件,因为找不到我的文件。


    QTemporaryDir dir;
    std::string controllerPath = "controller.bin";
    QFile::copy(QString::fromStdString("./data/" + controllerPath), QDir(dir.path()).filePath(QString::fromStdString(controllerPath)));

有没有办法可以在运行时使用相对路径来做到这一点?

谢谢您的建议!

c++ qt file copy relative-path
1个回答
0
投票

相对路径必须相对于运行时当前目录。可能您从相对路径 data/controller.bin 不存在的另一个当前目录执行 unity_test

© www.soinside.com 2019 - 2024. All rights reserved.