| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1352 人关注过本帖
标题:绝对路径
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 


看10楼的图,上面"G:\Install\Microsoft\Windows"就是当前的目录(文件夹,也叫子目录),这个字符串叫绝对路径,它是带有驱动器盘符G:和从根目录开始的完整路径,当前子目录在根目录下来的第4层。这个图就是目录树,它列出从当前子目录开始的下层目录结构,也就是说,在这个子目录中,有4个子目录,有些子目录又有它下面的子目录,有些没有,这个图看的一目了然。

当我们现在位于这个子目录时,如果要指定"Windows XP"子目录,可以写绝对路径"G:\Install\Microsoft\Windows\Windows XP",也可以写相对路径".\Windows XP",这里.表示当前目录,亦即"G:\Install\Microsoft\Windows",身在何处,.就是这个地方。当前目录的上层,用..表示,在这幅图中,..就是"G:\Install\Microsoft"。一定要明白,你现在在哪里,这相当于指路,用东南西北指示,是绝对路径指示法,用前后左右,是相对指示法,前者不用管你当前身在何处,但后者要确知当前位置和方向。

用相对路径,我们可以做如下实验,变换目录:用"cd 'Windows XP'"指令,把当前目录切换到当前目录的下层Windows XP中(注意当前目录变了),然后用指令"cd ..\Windows 7",就转入了新当前目录的父目录下面的"Windows 7"子目录中,看看图,这两个目录是平级的。不切换当前目录,直接指定到哪个目录中查找文件和数据,也是这样使用。

授人以渔,不授人以鱼。
2013-04-11 22:56
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
写程序发布的时候,必须考虑到用户可能把程序安装在任何子目录中,这个子目录的绝对路径在写程序时是不可能知道的,程序必须适应这种变化,这就是你的问题。对这种情况,只能使用相对路径,要确保自己的程序所使用的任何路径,都在主程序运行的目录下层,千万不要往上走,因为上层可能没有目录(用户把程序直接安装在根目录了),也可能没有权限读写(当对自己的下层是有绝对权力的),也不要变换驱动器盘符(用户的机器未必有你所以为的那个驱动器,甚至那可能是网络路径,没盘符的)。你可以用代码获取程序执行时的当前路径,指定为虚拟根目录,从这个路径开始接驳绝对路径字符串,也可以不获取,直接使用相对路径(因为这个目录的结构是你编写程序时预先就知道的)。整个程序代码的编写,时刻要记住上面所说的原理,确切知道自己在干什么,如何解决,不要写了一大堆之后,再回头擦屁股,那样难免会遗漏的。

[ 本帖最后由 TonyDeng 于 2013-4-11 23:09 编辑 ]

授人以渔,不授人以鱼。
2013-04-11 23:08
快速回复:绝对路径
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019195 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved