例如:在我的电脑中,有三个分区
最开始他们的名字都是' 本地磁盘 '的 ,后来我改成如下的名字了
---
-
我想在delphi中获得他们的名字,,
拿C盘做个例子
请在,button1 的单击事件里面写下获取C盘名字具体的代码,
并且把C盘名字赋给edit1.text把,
-
谢谢拉!
例如:在我的电脑中,有三个分区
最开始他们的名字都是' 本地磁盘 '的 ,后来我改成如下的名字了
---
-
我想在delphi中获得他们的名字,,
拿C盘做个例子
请在,button1 的单击事件里面写下获取C盘名字具体的代码,
并且把C盘名字赋给edit1.text把,
-
谢谢拉!
var
sysname,diskname array[0..225] of char;
@num,max,flag,sysname :DWORD;
-
button1的单击事件里面写下
GetVolumeInformation(pchar('d:\'), diskname, 255,@num,max,flag,sysname,255);
edit1.text:= diskname;
-
diskname就是你要的卷标名,,
简单吧,其他变量是一些其他系统信息的,,你想了解可以去百度查一下,或者加我
//函数,返回分区信息 Function GetHardDiskPartitionInfo(const DriveLetter:Char; var VolumeName,VolumeSerialNumber,PartitionType:string; var TotalSpace,TotalFreeSpace:string): string; var NotUsed: DWORD; VolumeFlags: DWORD; VolumeInfo: array[0..MAX_PATH] of Char; VSNumber: DWORD; PType: array[0..32] of Char; VName:array[0..32] of Char; FreeS,TotalS:Int64; TotalF:Int64; begin
if not GetVolumeInformation(PChar(DriveLetter + ':\'), @VName, SizeOf(VolumeInfo), @VSNumber, NotUsed, VolumeFlags, PType, 32) then result:='卷信息未能完全返回'#13#10; VolumeName:=strpas(VName); VolumeSerialNumber:=InttoHex(VSNumber,8); PartitionType:=StrPas(PType); if not GetDiskFreeSpaceEx(PChar(DriveLetter + ':\'),FreeS,TotalS,@TotalF) then result:=result+'获取卷空间大小失败'; TotalSpace:=FloatToStr(Round(TotalS / 1024 / 1024 /1024 * 100) / 100); TotalFreeSpace:=FloatToStr(Round(TotalF / 1024 / 1024 /1024 * 100) / 100); end;
//读取卷标到Edit.text
procedure TForm1.btn4Click(Sender: TObject); var VName,VSNumber,PType:string; TotalS,TotalF:string; begin GetHardDiskPartitionInfo('c',VName,VSNumber,PType, TotalS,TotalF); //C盘符自己改成要读取的 edt1.Text :=VName; end;
//修改磁盘卷标
procedure TForm1.btn3Click(Sender: TObject); var VName:PChar; begin VName:=PChar (edt2.Text); SetVolumeLabel('c:\',VName); //C盘符自己改 end;