현재 디렉터리 변경

활성 경로의 끝에 있는 디렉터리를 현재 디렉터리라고 합니다. 명시적으로 변경되지 않는 한 활성 애플리케이션이 시작된 디렉터리입니다. 애플리케이션은 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);
}