Windows核心编程_更改当前工作目录

在Windows环境下开发每个程序都会有一个工作目录

比如你在C盘下有一个.EXE文件你打开,那么这个程序的工作目录就在C盘下,你使用fopen等文件IO函数即便不给绝对路径给相对路径那么Windows会默认从工作目录下+相对路径

比如工作目录是C盘

然后fopen打开文件给相对路径

fopen("TEST.TXT");

实际上Windows在给你创建IO对象的时候是以这样的路径来选择磁盘文件的:

工作目录+fopen参数=C:\TEST.TXT

如果想要更改这个目录可以使用API:

SetCurrentDirectory

函数原型:

BOOL WINAPI SetCurrentDirectory( __in LPCTSTR lpPathName);

参数介绍:

__in LPCTSTR lpPathName:路径

返回值:

成功返回真,否则返回假

示列:

SetCurrentDirectory(_T("E:\\test\\"));

这里给大家说一个问题,之前博主遇到的!

博主之前在做T&M开发的时候在上面有个命令command调用可以调用外部程序,然后博主在d盘写了一个log程序,方便调用,结果调用log文件找不到了,路径是当前文件夹,结果最后发现,写到C盘下的T&M程序目录下了,也就是说使用command命令调用会把程序视为子进程,而子进程和父进程使用同一工作目录!

你可能感兴趣的:(Windows核心编程,Windows核心编程)