三九宝宝网宝宝百科宝宝知识

GetLogicalDriveStrings获取系统中存在的逻辑驱动器字符串

11月16日 编辑 39baobao.com

声明:GetLogicalDriveStrings(

nBufferLength: DWORD; {缓冲区大小}

lpBuffer: PAnsiChar {缓冲区}

): DWORD; 缓冲区的结果是这样储存的: 譬如 A 驱动器会表示为 A: 后面隔一个空字符, 依次向后;

所以每个驱动器会占 4 字节.

举例:procedure TForm1.FormCreate(Sender: TObject);

var

PStr: PChar;

DriveArr: array[0..4*26] of Char; {每个驱动器 4 字节, 最多 26 个驱动器}

begin

GetLogicalDriveStrings(SizeO

f(DriveArr), DriveArr); {函数调用就这么简单}

PStr := DriveArr; {因为 PStr 是 &emsp0 结尾的, 所以现在它指向的是前 4 个字节}

Memo1.Clear; {清空 Memo}

While PStrnil do

begin

Memo1.Lines.Add(PStr);

Inc(PStr,StrLen(PStr)+1); {字符串指针是可以运算的, 这里相当于指针移动 4 个位置, 而指向下一个}

if(Byte(PStr[0]) = 0) then PStr := nil; {如果下一个的第一个字符就是空, 就是没有了, While 等着 nil 终止呢}

end;

end;

推荐阅读
图文推荐