Q&A

  • 디스크관리
무슨말인지 자세한 설명좀 부탁드립니다...

좀 급하니 빨리...





현재 시스템에 장착된 드라이브의 개수를 구한다.

단 플로피나 시디롬은 제외한다.



procedure Tform1.FormCreate(Sender:Tobject);

var

i:Integer;

str:String;

str2:array[0..128] of char;

begin

totaldrv:=0;

for i:=0 to 25 do

begin

str2:='c:';

str2[0]:=chr(i+ord('c'));

if getdrivetype(str2) = DRIVE_FIXED then

inc(totaldrv);

end;



1  COMMENTS
  • Profile
    최용일 2000.03.03 01:32
    별거 없는데요... 현재 시스템에 있는 고정된 드라이브(하드디스크)를 구하는 것입니

    다.. 근데 약간의 코딩이 잘 못됐군요..

    GetDriveType(Drive: PChar)의 결과값

    0 - 드라이브 종류를 알 수 없음.

    1 - 루트 디렉토리가 존재하지 않음.

    DRIVE_REMOVABLE - 이동용 드라이브(집드라이브, 째즈 드라이브)

    DRIVE_FIXED - 고정된 드라이브(하드 디스크)

    DRIVE_REMOTE - 원격(네트웍) 드라이브

    DRIVE_CDROM - 시디롬 드라이브

    DRIVE_RAMDISK - 램 디스크



    procedure Tform1.FormCreate(Sender:Tobject);

    var

    I: Integer;

    DriveLetter: array[0..2] of char;

    begin

    TotalDrv := 0;

    for I := 65 to 90 do // A부터 Z까지 루프를 돌려 사용가능한 드라이브를 찾는다.

    begin

    DriveLetter := chr(I) + ':';

    if GetDriveType(DriveLetter) = DRIVE_FIXED then // 고정된 드라이브이면...

    Inc(TotalDrv); // 고정된 드라이브의 총수를 하나 증가한다.

    end;

    // 즉 TotalDrv가 가지고 있는 값이 현재 시스테이 가지고 있는 고정된 드라이브의

    // 총 수입니다...

    end;



    hjcho wrote:

    > 무슨말인지 자세한 설명좀 부탁드립니다...

    > 좀 급하니 빨리...

    >

    >

    > 현재 시스템에 장착된 드라이브의 개수를 구한다.

    > 단 플로피나 시디롬은 제외한다.

    >

    > procedure Tform1.FormCreate(Sender:Tobject);

    > var

    > i:Integer;

    > str:String;

    > str2:array[0..128] of char;

    > begin

    > totaldrv:=0;

    > for i:=0 to 25 do

    > begin

    > str2:='c:';

    > str2[0]:=chr(i+ord('c'));

    > if getdrivetype(str2) = DRIVE_FIXED then

    > inc(totaldrv);

    > end;

    >