Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer


Gets the current disk drive.

int _getdrive( void );

Return Value

Returns the current (default) drive (1=A, 2=B, and so on). There is no error return.


Routine Required header Compatibility
_getdrive <direct.h> Win 98, Win Me, Win NT, Win 2000, Win XP

For additional compatibility information, see Compatibility in the Introduction.


All versions of the C run-time libraries.


// crt_getdrive.c
/* Illustrates drive functions including:
 *      _getdrive       _chdrive        _getdcwd

#include <stdio.h>
#include <direct.h>
#include <stdlib.h>
#include <ctype.h>

int main( void )
   int ch, drive, curdrive;
   static char path[_MAX_PATH];

   /* Save current drive. */
   curdrive = _getdrive();

   printf( "Available drives are:\n" );

   /* If we can switch to the drive, it exists. */
   for( drive = 1; drive <= 26; drive++ )
      if( !_chdrive( drive ) )
         printf( "%c:", drive + 'A' - 1 );
         if( _getdcwd( drive, path, _MAX_PATH ) != NULL )
            printf( " (Current directory is %s)", path );
         putchar( '\n' );

   /* Restore original drive.*/
   _chdrive( curdrive );

Sample Output

Available drives are:
A: (Current directory is A:\)
C: (Current directory is C:\)
E: (Current directory is E:\testdir\bin)
F: (Current directory is F:\)
G: (Current directory is G:\)

See Also

Directory Control Routines | _chdrive | _getcwd | _getdcwd | Run-Time Routines and .NET Framework Equivalents

© 2015 Microsoft