所在目录:当前程序运行的目录。
比如:在VS调试程序时,所在目录就是源文件所在的目录。
在debug直接运行.exe是,所在目录就是debug所在的目录。
GetCurrentDirectory();获取所在目录。
函数原型:
DWORDGetCurrentDirectory
(
DWORD nBufferLength,
LPTSTR lpBuffer
)
参数说明
nBufferLength 缓冲区的长度
lpBuffer 指定一个预定义字串,用于装载当前目录
返回值
调用成功 返回装载到lpBuffer的字节数。
使用GetLastError函数可获得错误信息。
SetCurrentDirectory(); 把所在目录改为C盘
函数原型:
BOOL WINAPI SetCurrentDirectory( __in LPCTSTR lpPathName);
参数说明
lpPathName String,新目录的路径
例子:
CString g_strDirect = "C:\vcpp32\ex34a\WebSite";
SetCurrentDirectory(g_strDirect);
当前目录:
GetFullPathName(); 获取当前目录
注意:无法直接修改当前目录。可以通过修改环境变量来改修当前目录.
函数原型:
DWORD GetFullPathName(
LPCTSTR lpFileName,
DWORD nBufferLength,
LPTSTR lpBuffer,
LPTSTR* lpFilePart
);
参数说明:
lpFileName String,指定文件名(长文件名或8.3格式的DOS文件名)
nBufferLength Long,lpBuffer字串的长度
lpBuffer String,指定一个预先定义好的字串,用于装载目标文件的驱动器及路径名称。如存在长文件名,那么这个参数保存的就肯定是长文件名
lpFilePart Long,指定一个长整数变量,用于装载文件名起始的地方。
返回值
如果调用成功 返回实际路径的长度
如果缓冲区太小,不能装下文件完整路径的话 返回值就是缓冲区的值 所以我们一般都将缓存区大小设置得足够大
调用失败 返回0 用GetLastError获得错误信息
module目录:就是源文件所在的目录。
GetModuleFileName(); 获取module目录。
函数原型:
DWORD WINAPI GetModuleFileName
(
_In_opt_ HMODULE hModule,
_Out_ LPTSTR lpFilename,
_In_ DWORD nSize
);
参数说明:
hModule 一个模块的句柄。可以是一个DLL模块,或者是一个应用程序的实例句柄。如果该参数为NULL,该函数返回该应用程序全路径。
lpFileName 指定一个字串缓冲区,要在其中容纳文件的用NULL字符中止的路径名,hModule模块就是从这个文件装载进来的
nSize 装载到缓冲区lpFileName的最大字符数量
返回值
编辑Long,如执行成功,返回复制到lpFileName的实际字符数量;零表示失败。使用GetLastError可以打印错误信息。
环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。
函数原型:
DWORD GetEnvironmentVariable
(
LPCSTR lpName,
LPSTR lpBuffer,
DWORD dSize
)
参数说明:
lpName 是你要求查询的环境变量的名,
lpBuffer 是返回你所指定的环境变量的值的,
dSize 是告诉这个函数lpBuffer可以存放多少个字节。
环境变量包含了所在目录和当前目录。
修改所在目录,当前目录会被修改。而环境变量不会被修改。
修改环境变量,可以修改当前目录。