Delphi里怎么样列举出本机所有盘符呢?

问答知识库用户 |浏览264次
收藏|2014/05/17 22:00
如题,怎么样获取所有的盘符呢?

满意回答

2014/05/17 22:00

procedure TForm1.Getdisks(Strings: TStrings);
const
  BufSize = 256;
var
  Buffer: PChar;
  P: PChar;
begin
  GetMem(Buffer, BufSize);
  try
    Strings.BeginUpdate;
    try
      Strings.Clear;
      if GetLogicalDriveStrings(BufSize, Buffer) <> 0 then
      begin
        P := Buffer;
        while P^ <> #0 do
        begin
          Strings.Add(P);
          Inc(P, StrLen(P) + 1);
        end;
      end;
    finally
      Strings.EndUpdate;
    end;
  finally
    FreeMem(Buffer, BufSize);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  S: TStrings;
begin
  S := TStringList.Create;
  Getdisks(S);
  memo1.Text := S.Text; // 显示在memo中
  S.free;
end;

热心网友

其他回答(0)
0人关注该问题
待解决问题



+1
 加载中...