曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 6839|回复: 0
打印 上一主题 下一主题

[进程,线程,模块] SetCurrentDirectory() -- 切换进程的当前目录到目标目录

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
跳转到指定楼层
楼主
发表于 2011-9-16 12:09:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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() 两个函数。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-6-18 07:53 , Processed in 0.067321 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表