鱼C论坛

 找回密码
 立即注册
查看: 1808|回复: 2

[技术交流] 文件路径问题

[复制链接]
发表于 2016-11-22 09:45:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 joker11111 于 2016-11-22 09:54 编辑

在平常工作中,我们常常需要将一些动态库(dll),或者某个文件(***.wav)添加到程序里,供我们调用,但时常搞不清路径到底应该怎么设,想知道么,来来来,老司机带你飙车

首先来谈一下windows下的文件路径:
1.文件管理器下的路径

01.jpg
2.程序中的路径
  1. PlaySound(TEXT("..\\hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC);
复制代码


程序为什么是两个“\\”捏?前面的“..”是什么意思捏?且容我慢慢道来:

一般我们表示一个文件的路径时有两种表达方式,一种是绝对路径,一种是相对路径
绝对路径:前面加上盘符,如D:\program files 这就属于绝对路径
相对路径:.\***.wav 这就属于相对路径,至于前面的.   它表示在当前目录下,如果是两个点..  它表示在当前目录的上一层目录
有时我们也会写
  1. #include "***.h"  
复制代码
,***.h是我们自己定义的一个头文件,这时候系统会默认在当前文件夹下搜索***.h
假如我们在当前文件夹下面有common文件夹,common文件夹下面有自己定义的头文件及实现
如下图所示:
03.jpg
这个时候我们在程序中这么引用:
  1. include ".\\common\\1.h"
复制代码


为什么要用两个反斜杠\\,第一个\表示转义,第二个才是\的意思,类似于\n,第一个\只是表示转义字符
回到开头
  1. TEXT("..\\hellowin.wav")
复制代码
这么写,就表示在当前目录的上一层目录下的hellowin.wav文件,此时的当前目录指的是debug下可执行文件.exe的目录

接下来linux下的文件路径:
linux下也有属于绝对路径和相对路径
绝对路径:以/开头的为绝对路径,如/home/joker,如下图所示
04.jpg
相对路径:和windows一样,也是以..开头的,含义都一样,不赘述了,不同的是,在windows下分隔符为:“\”,linux下,分隔符为"/",而且linux下相对路径不需要转义字符
06.jpg

如上图所示,同样在当前目录中有Common文件夹,当我需要包含其中的头文件时
  1. #include "./Common/file.h"
复制代码

好了,今天老司机就飙到这里吧,下车

评分

参与人数 1鱼币 +1 收起 理由
四十二 + 1 一点点鱼币不成敬意,好像我只能+1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-22 22:33:24 | 显示全部楼层
那如果是当前目录的上上层目录和下下层目录呢

老师晚上好?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-23 13:52:50 | 显示全部楼层
四十二 发表于 2016-11-22 22:33
那如果是当前目录的上上层目录和下下层目录呢

老师晚上好?

上上层用对应window,或者linux规则,用相对路径,前面多加一个点就行
下下层就写路径了,以windows为例,假设common下还有个common1文件夹,头文件包含的时候:#include ".\\common\\common1\\***.h"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 20:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表