PRODRAMMER

GetDriveType 함수의 원형

UINT WINAPI GetDriveType(
  _In_opt_ LPCTSTR lpRootPathName
);

인자 lpRootPathName은 말 그대로 드라이브의 루트 이름을 전달해주면 됩니다.




GetDriveType 함수는 인자로 전달받은 드라이브가 어떤 종류의 드라이브인지 판별하여 리턴해줍니다.


각 리턴 값들에 대한 설명입니다.

Return code/valueDescription
DRIVE_UNKNOWN
0

The drive type cannot be determined.

DRIVE_NO_ROOT_DIR
1

The root path is invalid; for example, there is no volume mounted at the specified path.

DRIVE_REMOVABLE
2

The drive has removable media; for example, a floppy drive, thumb drive, or flash card reader.

DRIVE_FIXED
3

The drive has fixed media; for example, a hard disk drive or flash drive.

DRIVE_REMOTE
4

The drive is a remote (network) drive.

DRIVE_CDROM
5

The drive is a CD-ROM drive.

DRIVE_RAMDISK
6

The drive is a RAM disk.



주요 드라이브에 대한 설명을 하자면 


DRIVE_REMOVABLE은 제거 가능한 드라이브로 USB를 떠올리면 됩니다.


DRIVE_FIXED은 주로 사용하는 C:나 D: 같은 고정 하드디스크라고 생각하시면 됩니다.


DRIVE_CDROM은 잘 아시리라 믿고, DRIVE_REMOTE은 네트워크 가상 드라이브를 의미합니다.






사용 방법

1
2
3
4
5
char cDriverName[] = "C:";
if(GetDriveType(cDriveName) == DRIVE_FIXED)
{
    MessageBox(NULL"DRIVE_FIXED Type입니다", cDriveName, MB_OK);
}
cs





1
2
3
4
5
6
7
8
9
10
11
char cDriveName[10= "A:";
int i;
 
for(i=0; i<10; i++)
{
    if(GetDriveType(cDriveName) == DRIVE_REMOVABLE)
    {
        MessageBox(NULL"DRIVE_REMOVABLE Type입니다", cDriveName, MB_OK);
    }
    cDriveName[0]++;
}
cs


'프로그래밍' 카테고리의 다른 글

VisualStudioCode C++ 디버깅 오류  (0) 2021.09.25
JAVA Garbage Collection  (0) 2020.06.14