c/c++ 中路径

来源:互联网 发布:java jini 编辑:程序博客网 时间:2024/06/15 22:10

文件路径的表示

可以分为绝对路径和相对路径:


绝对路径表示相对容易,例如:

pDummyFile = fopen("D:\\vctest\\glTexture\\texture\\dummy.bmp", "rb");


相对路径有以下多种形式:

1、当前默认目录下:

pDummyFile = fopen("dummy.bmp", "rb");

VS2012中默认目录为exe所在目录。例如,把exe放在“abc”文件夹下,如果需要调用dll,只需要把dll与exe放在同一个目录,LoadLibrary的路径直接输入dll名即可。


2、访问上一级目录(父目录)用“..”:

pDummyFile = fopen("..\\texture\\dummy.bmp", "rb");

3、访问下一级目录(子目录)用“.”:

pDummyFile = fopen(".\\texture\\dummy.bmp", "rb");


获取当前目录


1、标准C++的方法。获取当前工作目录是使用函数:getcwd。cwd指的是“current working directory”。


函数说明:
    函数原型:char* getcwd(char* buffer, int len);
    参数:buffer是指将当前工作目录的绝对路径copy到buffer所指的内存空间, len是buffer的长度。
    返回值:获取成功则返回当前工作目录(绝对路径),失败则返回false(即NULL)。 
    该函数所属头文件为<direct.h>

范例1:

#include <stdio.h>  #include <direct.h>    int main()  {      char *buffer;      //也可以将buffer作为输出参数      if((buffer = getcwd(NULL, 0)) == NULL)      {          perror("getcwd error");      }      else      {          printf("%s\n", buffer);          free(buffer);      }  }  

注:VC中要使用_getcwd

范例2:

#include<stdio.h>#include<direct.h>#include<stdlib.h>intmain(intargc,char*argv[]){charpath[_MAX_PATH];_getcwd(path,_MAX_PATH);printf("当前工作目录:\n%s\n",path);if((_chdir("d:\\visualc++"))==0){printf("修改工作路径成功\n");_getcwd(path,_MAX_PATH);printf("当前工作目录:\n%s\n",path);}else{perror("修改工作路径失败");exit(1);}return0;}


2、MS的方法。GetCurrentDirectory和GetModuleFileName。

DWORD GetCurrentDirectory(  DWORD nBufferLength,  // size, in characters, of directory buffer  LPTSTR lpBuffer       // pointer to buffer for current directory);

HMODULE module = GetModuleHandle(0); CHAR buf[MAX_PATH]; GetModuleFileName(module, buf, sizeof buf); 

不过以上两种目录路径碰到文件夹带有“.”就完蛋了,如当前程序放在 D:\\myproject\\test-1.0\\win-app\\目录下,要想通过GetCurrentDiretory或GetModuleFileName来获取当前目录(想要得到:D:\\myproject\\test-1.0\\win-app), 永远不正确,每次都是:D:\\myproject\\test-1.0 目录。此时,就只能使用_getcwd了。


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 几个月宝宝可以竖着抱 三个月宝宝可以竖着抱吗 三个月宝宝可以竖抱吗 新生儿几个月可以竖着抱 婴儿几个月可以竖着抱 婴儿什么时候可以竖着抱 婴儿什么时候可以竖抱 新生儿几个月可以竖抱 宝宝三个月可以竖着抱吗 小孩几个月可以竖着抱 宝宝什么时候可以竖着抱 宝宝什么时候可以竖抱 孩子几个月可以竖着抱 小孩几个月可以竖抱 孩子几个月可以竖抱 宝宝几个月才能竖着抱 三个月的宝宝可以竖着抱吗 两个多月的宝宝可以竖着抱吗 宝宝什么时候能竖着抱 两个月的宝宝可以竖着抱吗 几个月的宝宝可以竖着抱 几个月婴儿可以竖着抱 婴儿三个月可以竖抱吗 2个月的宝宝可以竖着抱吗 小宝宝几个月可以竖着抱 婴儿两个月可以竖抱吗 婴幼儿几个月可以竖着抱 一个月的宝宝可以竖着抱吗 多大的婴儿可以竖着抱 二个月的宝宝可以竖着抱吗 几个月的宝宝可以竖抱 多大的宝宝可以竖着抱 3个月的宝宝可以竖着抱吗 新生儿多大可以竖着抱 宝宝两个月可以竖着抱吗 两个月宝宝喜欢竖着抱 三个月的婴儿可以竖着抱吗 2个多月的宝宝可以竖着抱吗 新生儿多久可以竖着抱 竖撇的字 一撇一竖是什么字