在Qt中获取文件的相对路径
Get relative path from a file in Qt
我正试图从我想写的文件中获得相对路径。这里有一个情况:
我在D:confsconf.txt
中保存了一个conf文件。我的程序中有一些从D:imagesimage.bmp
读取的文件。在我的conf.txt
中,我想有../images/image.bmp
。
我看到一些有用的类,如QDir
或QFileInfo
,但我不知道它是最好的使用。我试着:
QDir dir("D:/confs");
dir.filePath(D:/images/image.bmp) // Just return the absolute path of image.bmp
我读了文档,它说filePath
只与目录集(这里是D:confs
)中的文件一起工作,但我想知道是否有一种方法可以指示从不同的目录搜索并获得他的相对路径。
您正在寻找以下方法:
QString::relativeFilePath(const QString &文件名)const
返回fileName相对于目录的路径。
QDir dir("/home/bob");
QString s;
s = dir.relativeFilePath("images/file.jpg"); // s is "images/file.jpg"
s = dir.relativeFilePath("/home/mary/file.txt"); // s is "../mary/file.txt"
根据上面的例子调整你的代码,它看起来如下:
QDir dir("D:/confs");
dir.relativeFilePath("D:/images/image.bmp") // Just return the absolute path of image.bmp
// ^ ^
总的来说,你所做的可能是一个坏主意,因为它将配置和映像路径耦合在一起。也就是说,如果你移动它们中的任何一个,应用程序就会停止工作。
还请注意缺少引号
QDir dir("D:/confs");
dir.relativeFilePath("D:/images/image.bmp");
相关文章:
- Windows 和 Linux 之间的相对路径分辨率差异?
- 如何获取 CMake 单元测试的相对路径?
- 从另一个应用启动我的应用时出现相对路径更改问题
- CMake 链接 2 个具有相对路径的库
- cmake find_package CMakeLists.txt 子文件夹中的相对路径
- 在可执行文件中使用带有符号链接的相对路径
- C++流找不到相对路径
- 如何将COM .tlb文件导入具有相对路径C++文件中?
- C++包括断开的相对路径
- CMake 安装具有相对路径的目标
- CMake为什么通过相对路径链接外部库
- Boost Filesystem flowly_caronical不会在没有父文件夹的情况下解决相对路径
- 如何将共享库与具有相对路径的 CMake 链接
- 相对路径中的错误
- C 能够以其完整路径打开代码::块中的文件,但不能以相对路径作为命令行参数打开文件
- 如何在基于QT的Autodesk Maya插件中使用相对路径
- 如何使用QT程序中的默认应用程序打开使用相对路径的PDF
- Visual Studio单元使用具有相对路径的文件测试
- 在 Visual Studio 中为 SFML 设置相对路径
- 如何配置MSVC以使用__FILE__显示头文件的相对路径