共用方式為


變更目前目錄

使用中路徑結尾的目錄稱為目前目錄;它是使用中應用程式啟動所在的目錄,除非它已明確變更。 應用程式可以藉由呼叫 GetCurrentDirectory 函式來判斷哪個目錄是最新的。 有時候必須使用 GetFullPathName 函式來確保應用程式需要時會包含磁碟機號。

注意

雖然每個進程只能有一個目前的目錄,但如果應用程式使用 SetCurrentDirectory 函式來切換磁片區,則系統會記住每個磁片區的最後一個目前路徑, (磁碟機號) 。 只有在將目前目錄參考點變更為不同的磁片區時,指定沒有完整路徑的磁碟機號時,此行為才會自行顯示。 這適用于取得或設定作業。

 

應用程式可以藉由呼叫 SetCurrentDirectory 函式來變更目前目錄。

下列範例示範 使用 GetCurrentDirectorySetCurrentDirectory

#include <windows.h> 
#include <stdio.h>
#include <tchar.h>

#define BUFSIZE MAX_PATH
 
void _tmain(int argc, TCHAR **argv) 
{ 
   TCHAR Buffer[BUFSIZE];
   DWORD dwRet;

   if(argc != 2)
   {
      _tprintf(TEXT("Usage: %s <dir>\n"), argv[0]);
      return;
   }

   dwRet = GetCurrentDirectory(BUFSIZE, Buffer);

   if( dwRet == 0 )
   {
      printf("GetCurrentDirectory failed (%d)\n", GetLastError());
      return;
   }
   if(dwRet > BUFSIZE)
   {
      printf("Buffer too small; need %d characters\n", dwRet);
      return;
   }

   if( !SetCurrentDirectory(argv[1]))
   {
      printf("SetCurrentDirectory failed (%d)\n", GetLastError());
      return;
   }
   _tprintf(TEXT("Set current directory to %s\n"), argv[1]);

   if( !SetCurrentDirectory(Buffer) )
   {
      printf("SetCurrentDirectory failed (%d)\n", GetLastError());
      return;
   }
   _tprintf(TEXT("Restored previous directory (%s)\n"), Buffer);
}