일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 초보
- 파라미터
- 문자열
- 인스톨
- SQL
- SDK
- 델파이
- xml
- 파이어버드
- Visual Studio 2005
- 설치
- MySQL
- 예제
- Delphi
- winsock
- WIN32 SDK
- MFC
- vb
- 소니
- Visual Basic
- 데이터베이스
- c#
- 입문
- 시리얼 통신
- 기초
- VB.NET
- dll
- Firebird
- 셋업
- PostgreSQL
- Today
- Total
프로그래밍 노트
[델파이]로컬 컴퓨터의 드라이브 문자열과 드라이브 타입 반환 본문
// 로컬 컴퓨터에 존재하는 드라이브의 문자열을 반환
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;
이런 것은 시간이 지나면 잊어 버리고 또 열심히 찾느다.
찾는데 시간은 별로 안걸리지만 귀찮아서 적어두어야지