Mengubah Direktori Saat Ini

Direktori di akhir jalur aktif disebut direktori saat ini; ini adalah direktori di mana aplikasi aktif dimulai, kecuali telah diubah secara eksplisit. Aplikasi dapat menentukan direktori mana yang terkini dengan memanggil fungsi GetCurrentDirectory . Terkadang perlu menggunakan fungsi GetFullPathName untuk memastikan huruf drive disertakan jika aplikasi memerlukannya.

Catatan

Meskipun setiap proses hanya dapat memiliki satu direktori saat ini, jika aplikasi beralih volume dengan menggunakan fungsi SetCurrentDirectory , sistem mengingat jalur terakhir saat ini untuk setiap volume (huruf drive). Perilaku ini hanya akan memanifestasikan dirinya ketika menentukan huruf kandar tanpa jalur yang sepenuhnya memenuhi syarat saat mengubah titik referensi direktori saat ini ke volume yang berbeda. Ini berlaku untuk operasi Dapatkan atau Atur.

 

Aplikasi dapat mengubah direktori saat ini dengan memanggil fungsi SetCurrentDirectory .

Contoh berikut menunjukkan penggunaan GetCurrentDirectory dan SetCurrentDirectory.

#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);
}