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名即可。
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
- c/c++ 中路径
- C语言中创建路径
- 【C#】在C#中获取相对路径
- c语言中#include 路径查找问题
- C语言中相对路径的使用
- C 程序路径 工作路径
- asp.net(c#)中相对路径(虚拟路径)和物理磁盘路径的转换
- aspnet_regiis -c路径
- C#获取相对路径
- C的最优路径
- 设置工作路径(C++)
- 最短路径C
- C/C++自学路径
- C语言--学习路径
- C++_BFS求最短路径
- C#Path路径处理
- C语言中对路径的设置问题。
- java 中System.loadLibrary()调用c++Dll的路径问题
- DOM和SAX解析XML文件
- win7+VS2008安装CGAL以及关键问题的解决方案
- 1032. Sharing (25)
- 利用Zabbix监控Nginx
- 第十一周项目六:1000以内所有回文(4)b
- c/c++ 中路径
- LeetCode 154题:Valid Palindrome
- C++的内存管理
- XP与Ubuntu双系统切换
- Erlang学习四
- 张振新:刀塔传奇客户端开发经验分享
- 代码高亮测试
- android 百度地图v3.2.0获取实际地址
- 做成移动电子商务需要清楚的三个问题