【发布时间】:2015-05-11 02:54:36
【问题描述】:
我是 C++ 新手,我想做一个程序启动器,它所做的只是根据我输入的文本为我启动应用程序。
我已经准备好它的基本代码,但我似乎不知道如何更改工作目录。我知道你使用 chdir,但究竟如何。
【问题讨论】:
标签: windows c++11 launcher working-directory
我是 C++ 新手,我想做一个程序启动器,它所做的只是根据我输入的文本为我启动应用程序。
我已经准备好它的基本代码,但我似乎不知道如何更改工作目录。我知道你使用 chdir,但究竟如何。
【问题讨论】:
标签: windows c++11 launcher working-directory
C++ 对文件系统函数的标准化支持仍然很少,部分原因是它运行在可能没有工作目录的嵌入式设备上,有时甚至根本没有目录或文件。所以我们必须看看 OS API。
对于 POSIX,有 chdir() 和 getcwd()。
对于 Windows,有 SetCurrentDirectory 和 GetCurrentDirectory,但如果你想处理每个驱动器的工作目录,you will need to work with environment variables。
MSDN 上有一个例子,标题为Changing the Current Directory
【讨论】:
if( !SetCurrentDirectoryA("C:\\Program Files\\App")) { printf("SetCurrentDirectory failed (%d)\n", GetLastError()); return; }