曲径通幽论坛

标题: SetCurrentDirectory() -- 切换进程的当前目录到目标目录 [打印本页]

作者: beyes    时间: 2011-9-16 12:09
标题: SetCurrentDirectory() -- 切换进程的当前目录到目标目录
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() 两个函数。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2