如何获得系统中所有的盘符,格式为C:/;D:/;E:/ ?(50分)

  • 主题发起人 主题发起人 wv990
  • 开始时间 开始时间
W

wv990

Unregistered / Unconfirmed
GUEST, unregistred user!
输出的盘符格式为C:/;D:/;E:/
 
procedure TForm1.FormCreate(Sender: TObject);
var
buf:array [0..MAX_PATH-1] of char;
m_Result:Integer;
i:Integer;
str_temp:string;
begin
m_Result:=GetLogicalDriveStrings(MAX_PATH,buf);
for i:=0 to (m_Result div 4) do
begin
str_temp:=string(buf[i*4]+buf[i*4+1]+buf[i*4+2]);
ListBox1.Items.Add(str_temp);
end;
end;
 
不要软盘和光盘以及虚拟光盘,结果输出格式为C:/;D:/(中间带分号)。
 
一、 用GetDriveType函数获取磁盘信息
  Lbl_DriveType:Tlabel;
  DriveType:WORD; //定义驱动器类型变量
  DriveType:=GetDriveType(RootPathName); //获得RootPathName所对应的磁盘驱动器信息
  case DriveType of
  DRIVE_REMOVABLE:Lbl_DriveType.Caption:= '软盘驱动器';
  DRIVE_FIXED : Lbl_DriveType.Caption:= '硬盘驱动器';
  DRIVE_REMOTE: Lbl_DriveType.Caption:= '网络驱动器';
  DRIVE_CDROM: Lbl_DriveType.Caption:= '光盘驱动器';
  DRIVE_RAMDISK: Lbl_DriveType.Caption:= '内存虚拟盘';
 
To:angellover
继续写出代码,完成的话再加你200分。
 
不过基本也全了,谢谢angellover。
 
procedure TForm1.Button1Click(Sender: TObject);
var
buf:array [0..MAX_PATH-1] of char;
m_Result:Integer;
i:Integer;
str_temp:string;
// Lbl_DriveType:Tlabel;
DriveType:WORD; //¶¨ÒåÇý¶¯Æ÷ÀàÐͱäÁ¿
begin
m_Result:=GetLogicalDriveStrings(MAX_PATH,buf);
Edit1.Clear ;
for i:=0 to (m_Result div 4) do
begin
str_temp:=string(buf[i*4]+buf[i*4+1]+buf[i*4+2]);
DriveType:=GetDriveType(Pchar(str_temp)); //»ñµÃRootPathNameËù¶ÔÓ¦µÄ´ÅÅÌÇý¶¯Æ÷ÐÅÏ¢
{case DriveType of
DRIVE_REMOVABLE:Lbl_DriveType.Caption:= 'ÈíÅÌÇý¶¯Æ÷';
DRIVE_FIXED : Lbl_DriveType.Caption:= 'Ó²ÅÌÇý¶¯Æ÷';
DRIVE_REMOTE: Lbl_DriveType.Caption:= 'ÍøÂçÇý¶¯Æ÷';
DRIVE_CDROM: Lbl_DriveType.Caption:= '¹âÅÌÇý¶¯Æ÷';
DRIVE_RAMDISK: Lbl_DriveType.Caption:= 'ÄÚ´æÐéÄâÅÌ';
end; }
if DriveType = DRIVE_FIXED then
Edit1.Text := Edit1.Text + str_temp+';';
end;
end;
 
后退
顶部