我们在开发程序时,常常需要操作相关的文件。操作文件一般有两种方法:绝对路径和相对路径。绝对路径是从盘符开始的,相对路径则是相对于当前目录。

绝对路径很简单,一般也不会出错,但是在实际开发过程中要慎用绝对路径,因为这样会导致程序的可移植性较差。但是在我个人却遇到了好几次相对路径不起作用的情况,只有换成绝对路径才生效。我个人调试了好久才找到了原因。

相对路径不起作用只有两种情况:

  1. 相对路径的写法出错了。
  2. 系统默认的当前目录被更改了。

关于第二种情况可能会有人产生疑问,系统默认的当前目录还能更改?

导致系统默认的当前目录被更改的原因很多,例如在Windows操作系统上,当用文件对话框成功打开一个文件后,当前目录就被修改为被打开的文件所在目录。(VC++6.0已经验证,其他版本未知)我个人感觉这是一个bug,希望微软能够解决。还有环境变量也有可能会导致系统默认的当前目录被更改。

Windows系统可以利用GetCurrentDirectory()这个函数可以获得当前目录。

实际上有一个折中的办法可以解决上述办法,通过函数获取系统默认的当前目录,然后再加上相对路径,这种写法是非常保险的。

VC++6.0相对路径无效的解决办法的更多相关文章

  1. VC++6.0打开文件出错的解决办法

    1.下载http://support.microsoft.com/kb/241396里面的一个叫FileTool.exe的文件并解压,解压后是一个vc工程,用vc6.0打开工程,编译,得到FileTo ...

  2. eclipse配置Tomcat和Tomcat出现无效端口解决办法

    一.eclipse配置Tomcat 1. 按图选择window-preferences 2在server处选择runtime environment . 3.点击右侧add,选择自己的Tomcat版本 ...

  3. Android权限管理之Android 6.0运行时权限及解决办法

    前言: 今天还是围绕着最近面试的一个热门话题Android 6.0权限适配来总结学习,其实Android 6.0权限适配我们公司是在今年5月份才开始做,算是比较晚的吧,不过现在Android 6.0以 ...

  4. 解析php file_exists无效的解决办法

    php中file_exists无效的解决办法. 方法1 :据官方手册上描述若php教程的safe mode相关的设置过于苛刻,就会出现这样的情形:尽管文件真实存在也被误报,认为文件不存在. 由于服务器 ...

  5. Vue微信自定义分享时安卓系统config:ok,ios系统config:invalid signature签名错误,或者安卓和ios二次分享时均config:ok但是分享无效的解决办法

    简述需求:要求指定页面可以进行微信自定义分享(自定义标题,描述,图片,链接),剩下的页面隐藏所有基础接口.二次分享依然可以正常使用,切换至其他页面也可以正常进行自定义分享. 这两天在做微信自定义分享的 ...

  6. JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法

    今天在程序中出现一个bugger ,调试了好久,最后才发现,原来是这个问题. 做了一个实验: alert(parseInt("01")),当这个里面的值为01====>07时 ...

  7. Android layout_margin 无效的解决办法

    http://www.aichengxu.com/view/31025 1.如果LinearLayout中使用Android:layout_marginRight不起作用,通过测试原来在android ...

  8. Linux 出现telnet: 127.0.0.1: Connection refused错误解决办法

    Linux 出现telnet: connect to address 127.0.0.1: Connection refused错误解决办法 没有xinetd服务: 1./etc/init.d目录中放 ...

  9. 360或者金山毒霸可能会导致HP网络打印机驱动安装失败“数据无效”的解决办法

    360或者金山毒霸可能会导致HP网络打印机驱动安装失败“数据无效”的解决办法     同事办公室的打印机是网线接口的那种网络打印机,不是直接连到电脑的那种,他电脑安装了360和金山毒霸,WIN10下安 ...

随机推荐

  1. org.thymeleaf.exceptions.TemplateInputException: Error resolving template "/ template might not exist or might not be accessible by any of the configured

    异常现象:在本地打包部署完全没有问题,资源文件也都可以映射上,但是打包成jar包部署到服务器上时,就一直报异常,异常信息如下: 严重: Servlet.service() for servlet [d ...

  2. 将windows控制台内容输出到文件中

    将windows控制台内容输出到文件中 dir>c:/file.txt 2>&1   对应的java  class   >c:/file.txt 2>&1   ...

  3. Navi.Soft31.Mobile框架(含下载地址)

    1概述 1.1应用场景 互联网的发展,使用基于Web的软件异军突起,目前占据着相当大的市场份额,而手机,平板电脑等移动端设备的频繁使用,使移动端的软件快速发展,逐步有超越Web软件的趋势 移动软件中, ...

  4. Linux 文件编码格式转换

    如果需要在Linux 中操作windows下的文件,那么经常遇到文件编码转换的问题. Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-. 查看文件编码 在vim 中 ...

  5. Prolog学习:用八卦的精神走进Prolog

    最近枕头书是<七周七语言:理解多种编程范型>这本,前面两章分别看了Ruby和IO,都是命令式语言.虽然它们在语法上跟之前接触过的C,C#,Java这些C家族的语言差别很大,但是编程范型却是 ...

  6. Linq“条件排序”

    StockQuantities.OrderBy(u=>u.Status==null) 该排序先排结果为0(false)的,再排结果为1(true)的 使用场景: 一个对象有上传时间(可以为空)和 ...

  7. lua------------------Unity3D研究院编辑器之打开unity不可识别的文件(十三)

    Unity3D研究院编辑器之打开unity不可识别的文件(十三) 雨松MOMO [Unity3D拓展编辑器] 围观8597次 9 条评论 编辑日期:2017-03-02 字体:大 中 小   有些特殊 ...

  8. Unity------Unity 脚本基类 MonoBehaviour 与 GameObject 的关系

    Unity 脚本基类 MonoBehaviour 与 GameObject 的关系 标签: unity脚本 2017-03-27 12:55 395人阅读 评论(0) 收藏 举报  分类: Unity ...

  9. jquery 实现 Json 的一些转换方法

    有一个json 字符串 1)要判断该字符串是否是 json 格式 方法:将其转换成json对象,如果报异常,则不是,否则就是json格式 function isJsonFormat(str) { tr ...

  10. C# where用法解析

    where 子句用于指定类型约束,这些约束可以作为泛型声明中定义的类型参数的变量.1.接口约束.例如,可以声明一个泛型类 MyGenericClass,这样,类型参数 T 就可以实现 ICompara ...