프로그래밍 노트

[델파이]로컬 컴퓨터의 드라이브 문자열과 드라이브 타입 반환 본문

델파이

[델파이]로컬 컴퓨터의 드라이브 문자열과 드라이브 타입 반환

띠리 2009. 7. 13. 13:48



// 로컬 컴퓨터에 존재하는 드라이브의 문자열을 반환
function TForm1.GetDriveList:TStringlist;
var
  sDrvChr : string;
  i : integer;
  cDrvChr : array[1..255] of char;
  iDrvType : integer;

  // 지정한 드라이브의 타입 반환
  function GetDrvType(sDrvChr: string): string;
  begin
    // 드라이브 타입 반환
    iDrvType := GetDriveType(Pchar(sDrvChr));
    case iDrvType of
      DRIVE_UNKNOWN:      Result := 'UNKNOWN';
      DRIVE_NO_ROOT_DIR:  Result := 'NO ROOT';
      DRIVE_REMOVABLE:    Result := 'REMOVABLE DISK';
      DRIVE_FIXED:        Result := 'FIXED DISK';
      DRIVE_REMOTE:       Result := 'NETWORK DRIVE';
      DRIVE_CDROM:        Result := 'CDROM';
      DRIVE_RAMDISK:      Result := 'RAM DISK';
      else                Result := '-';
    end;
  end;

begin
  // 드라이브 문자열 반환
  GetLogicalDriveStrings(255, @cDrvChr);
  result := TStringList.create;
  i := 1;
  repeat
    sDrvChr := '';
    while (i <= 255) and (cDrvChr[i] <> #00) do
    begin
      sDrvChr := sDrvChr + char(cDrvChr[i]);
      inc(i);
    end;
    inc(i);
    result.add(sDrvChr + ':' + GetDrvType(sDrvChr));
  until length(sDrvChr) = 0;
end;


이런 것은 시간이 지나면 잊어 버리고 또 열심히 찾느다.
찾는데 시간은 별로 안걸리지만 귀찮아서 적어두어야지

Comments