예전에 했던 건데 기억이 안나더라구요. 기억이 안나니깐 또 갑자기 궁금해지네요.
그래서 빌더 열어서 한 번 해봤습니다. ^^
다른 건 다 잡동사니들이고 GetDriveType 만 알면 됩니다.
GetDriveType의 리턴값이 DRIVE_CDROM 이면 됩니다.
String drive, msg;
UINT result;
_ULARGE_INTEGER FreeBytesAvailable, TotalNumberOfBytes, TotalNumberOfFreeBytes;
for(char drv = 'A'; drv <= 'Z'; drv++)
{
drive = String(drv) + ":\\";
result = ::GetDriveType(drive.c_str());
switch(result)
{
case DRIVE_UNKNOWN : msg = "DRIVE_UNKNOWN"; break;
case DRIVE_NO_ROOT_DIR : msg = "DRIVE_NO_ROOT_DIR"; break;
case DRIVE_REMOVABLE : msg = "DRIVE_REMOVABLE"; break;
case DRIVE_FIXED : msg = "DRIVE_FIXED"; break;
case DRIVE_REMOTE : msg = "DRIVE_REMOTE"; break;
case DRIVE_CDROM : msg = "DRIVE_CDROM"; break;
case DRIVE_RAMDISK : msg = "DRIVE_RAMDISK"; break;
}
msg = drive + " - " + msg;
if(true == ::GetDiskFreeSpaceEx(drive.c_str(), &FreeBytesAvailable, &TotalNumberOfBytes, &TotalNumberOfFreeBytes))
msg = msg + " - FreeBytesAvailable : " + String(FreeBytesAvailable.QuadPart)
+ " / TotalNumberOfBytes : " + String(TotalNumberOfBytes.QuadPart)
+ " / TotalNumberOfFreeBytes : " + String(TotalNumberOfFreeBytes.QuadPart);
this->ListBox1->Items->Add(msg);
}
웃으면서 님이 쓰신 글 :
: 빌더를 공부하면서 매일 눈팅만 하다가 혼자힘으로 해결하는데에 시간이 너무 소요돼어서 이렇게 많은 사람들한테 물어볼께요^^;;
: 각각의 PC에 CD-rom 드라이브명이 다를수가 있잖아요.
: 어떤피씨는 D:\ 또 다른거는 E:\.. 뭐 이런식으로요ㅎ
: 쩝.. 근데 제가 원하는 일을 처리하기 위해서는 그 드라이브명을 꼭 알아야 하거든요ㅠㅠ
: 그래야 다른 폴더를 생성시키구 CD-Rom드라이브 내의 파일을 복사해서 붙일수가 있어서요~;;
: 여러가지 방법들을 찾아서 해보지만 여의치 않아 질문올림니다^^
|