SetCurrentDirectory() 函数用来切换进程所在的当前目录到目标目录。函数声明如下:BOOL WINAPI SetCurrentDirectory(
__in LPCTSTR lpPathName
); 函数只有一个参数,就是目录的路径名。注意,路径名长度不能超过宏 MAX_PATH 定义的长度。
测试代码:
[C++] 纯文本查看 复制代码
int _tmain(int argc, _TCHAR* argv[])
{
SetCurrentDirectory(_T("d:\\www"));
system("dir");
return 0;
}
运行输出:D:\WindowsAPP\SetCurrentDirectory\Debug>SetCurrentDirectory.exe
驱动器 D 中的卷是 WinSoft
卷的序列号是 6EAB-3C0C
d:\www 的目录
2011/09/09 16:31 <DIR> .
2011/09/09 16:31 <DIR> ..
2010/09/10 12:22 125 adsense.txt
2011/07/12 15:01 <DIR> aspnet_client
2011/09/09 16:31 6,546 code.html
2011/08/31 14:27 9,120,938 fs-vbs415.rar
2011/08/26 19:07 1,249 getmp3.php
2011/06/17 17:48 69,335,593 linux-2.6.35.13.tar.bz2
2011/07/24 23:15 <DIR> modpost
2011/09/06 15:47 12 save_default.txt
2011/09/06 15:45 21 save_default.txt.bak
2011/09/06 15:45 21 utf8_default.txt
2011/07/12 14:56 208 web.config
9 个文件 78,464,713 字节
4 个目录 134,471,409,664 可用字节 上面程序切换到 D 盘的 www 目录下,然后用 system() 函数直接调用 dir 命令显示其下的文件内容。
如果要切换回之前的目录,程序应该在 SetCurrentDirectory() 之前先用 GetCurrentDirectory() 获得当前目录并保存起来,在切换回去时再次调用 SetCurrentDirectory() 。
GetCurrentDirectory() 和 SetCurrentDirectory() 两个函数类似与 Unix/LInux 中的 getcwd() 和 chdir() 两个函数。 |