相对路径的使用

什么是相对路径:

  让我们先来分析一下为什么会发生图片不能正常显示的情况。举一个例子,现在有一个页面index.htm,在这个页面中联接有一张图片photo.jpg。他们的绝对路径如下:
  c:/website/index.htm
  c:/website/img/photo.jpg

  如果你使用绝对路径c:/website/img/photo.jpg,那么在自己的计算机上将一切正常,因为确实可以在指定的位置即c:/website/img/photo.jpg上找到photo.jpg文件,但是当你将页面上传到网站的时候就很可能会出错了,因为你的网站可能在服务器的c盘,可能在d盘,也可能在aa目录下,更可能在bb目录下,总之没有理由会有c:/website/img/photo.jpg这样一个路径。那么,在index.htm文件中要使用什么样的路径来定位photo.jpg文件呢?对,应该是用相对路径,所谓相对路径,顾名思义就是自己相对与目标位置。在上例中index.htm中联接的photo.jpg可以使用img/photo.jpg来定位文件,那么不论将这些文件放到哪里,只要他们的相对关系没有变,就不会出错。

  另外我们使用“../”来表示上一级目录,“../../”表示上上级的目录,以此类推。
---------------------
作者:锦衣卫_
来源:优快云
原文:https://blog.youkuaiyun.com/hgd613/article/details/8041662
版权声明:本文为博主原创文章,转载请附上博文链接!

### 正确使用相对路径的方法 #### 定义与作用 相对路径是指相对于当前工作目录的路径。它不以根目录 `/` 开始,而是基于程序运行时的工作目录来定位文件[^1]。在 Linux 系统编程中,相对路径可以简化文件访问操作,尤其是在处理同一项目内的多个文件时。 #### 如何获取当前工作目录 为了正确使用相对路径,首先需要知道程序运行时的当前工作目录。可以通过以下方式获取: ```cpp #include <QDir> QString currentPath = QDir::currentPath(); ``` 上述代码展示了如何在 Qt 中获取当前工作目录[^2]。这有助于开发者理解相对路径的实际起点。 #### 设置当前工作目录 如果希望更改当前工作目录以便更好地管理相对路径,可以在程序启动时设置工作目录: ```cpp QDir::setCurrent("/path/to/desired/directory"); ``` 此方法允许开发人员控制相对路径解析的基础位置。 #### 使用相对路径打开文件 假设有一个名为 `data.txt` 的文件位于项目的子目录 `resources/` 下,则可以直接使用相对路径读取该文件: ```cpp #include <QFile> #include <QDebug> void readFile() { QFile file("resources/data.txt"); // 使用相对路径 if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "Failed to open file"; return; } QByteArray data = file.readAll(); qDebug() << data; } ``` 这段代码演示了如何利用相对路径加载资源文件。注意,这里的路径是相对于当前工作目录而言的。 #### 路径拼接注意事项 当构建复杂的相对路径时,应考虑不同操作系统之间的差异(如 Windows 和 Unix 风格的分隔符)。推荐使用跨平台库函数完成路径拼接: ```cpp QString filePath = QDir::cleanPath(QDir::currentPath() + "/resources/data.txt"); qDebug() << "Full path:" << filePath; ``` 这里采用了 `QDir::cleanPath()` 方法规范化路径字符串,从而提高兼容性和可靠性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值