得到当前路径的几种方法

通过调用下面两个函数,线程能够获得和设置它的进程的当前驱动器和目录:

DWORD GetCurrentDirectory(
   DWORD cchCurDir,
   PTSTR pszCurDir);
BOOL SetCurrentDirectory(PCTSTR pszCurDir);


注意可以使用C 运行期函数_ c h d i r ,而不是使用Wi n d o w s 的S e t C u r r e n t D i r e c t o r y 函数来变更当前目录。_ c h d i r 函数从内部调用S e t C u r r e n t D i r e c t o r y ,但是_chdir 也能够添加或修改该环境变量,这样,不同驱动器的当前目录就可以保留。

如果父进程创建了一个它想传递给子进程的环境块,子进程的环境块不会自动继承父进程的当前目录。相反,子进程的当前目录将默认为每个驱动器的根目录。如果想要让子进程继承父进程的当前目录,该父进程必须创建这些驱动器名的环境变量。并在生成子进程前将它们添加给环境块。通过调用G e t F u l l P a t h N a m e ,父进程可以获得它的当前目录:

DWORD GetFullPathName(
   PCTSTR pszFile,
   DWORD cchPath,
   PTSTR pszPath,
   PTSTR *ppszFilePart);
例如,若要获得驱动器C 的当前目录,可以像下面这样调用G e t F u l l P a t h N a m e :
TCHAR szCurDir[MAX_PATH];
   DWORD GetFullPathName(TEXT("C:"),
   MAX_PATH,szCurDir,NULL);
记住,进程的环境变量必须始终按字母顺序来排序。因此驱动器名的环境变量通常必须置于环境块的开始处。

你可能感兴趣的:(c,null,Path)