VC中获取文件的相对路径与绝对路径

来源:互联网 发布:装潢设计软件 编辑:程序博客网 时间:2024/04/28 04:25

Ⅰ、获取相对路径

如果当前打开的文件中要寻找同级的目录文件就要用到 .\或者 ./ VC编译器都可以识别。例如#define ".\XX\XX\xx.h"

如果当前打开的文件中要寻找在上级的目录文件就要用到  ..\ 或者 ../ VC编译器都可以识别。例如#define "..\XX\XX\xx.h"

通过这样简单的标识,vc相对路径的问题就解决了,这样也就避免了设置繁琐的系统路径。当然了,设置相对路径要在编码的时候对文件的存放层次关系特别清楚,否则统一修改路径将会带来很大的工作量。

Ⅱ、绝对路径

方法1:

CString strPath;
GetCurrentDirectory(MAX_PATH,strPath.GetBuffer(MAX_PATH));
strPath.ReleaseBuffer(); 
filename=strPath+"\\"+dlg.GetFileName(); 

方法2:

使用GetModuleFileName(NULL,exeFullPath,MAX_PATH);//得到程序模块名称,全路径

[cpp] view plaincopyprint?
  1. CString strPath;  
  2. GetModuleFileName(NULL,strPath,MAX_PATH);  
  3. strPath.ReleaseBuffer();  
  4. filename=strPath+"\\文件名.*";                 
在开发工程中,往往需要知道当前程序本身所在目录。一种方法是在程序安装的时候利用安装程序把文件路径写入注册表。在较大的程序中,这种方法比较常用;另一种,就是在程序得到路径。这样,程序随便移动到哪里,都可以得到正确的路径。这也是本文介绍的方法。

 .\\是的到应用程序的当前目录,但当前目录不一定等于应用程序执行文件的所在目录,一个应用程序被启动时,当前目录是可以被任意设置的;
GetModuleFileName()得到模块的完整路径名,例如,你载入c:\windows\system32\a.dll,得到模块句柄h,则你可以用GetModuleFileName()得到h模块的完整路径名。

        
0 0
原创粉丝点击