procedure TForm1.btn2Click(Sender: TObject);
var
RootPath: string;
VolumeName, FileSystemName: array[0..MAX_PATH] of Char;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
begin
RootPath := 'C:\'; // 指定卷的根路径
if GetVolumeInformation(PChar(RootPath), VolumeName, SizeOf(VolumeName),
@VolumeSerialNumber, MaximumComponentLength, FileSystemFlags,
FileSystemName, SizeOf(FileSystemName)) then
begin
// 在这里处理获取到的卷信息
mmo1.Lines.Add('Volume Name: ' + VolumeName) ;
mmo1.Lines.Add('Volume Serial Number ' +IntToHex(VolumeSerialNumber, 8)) ;
mmo1.Lines.Add('Maximum Component Length:'+IntToStr(MaximumComponentLength)) ;
mmo1.Lines.Add('File System Flags ' + IntToStr(FileSystemFlags));
mmo1.Lines.Add('File System Name:' + FileSystemName) ;
end
else
begin
// 获取卷信息失败,进行错误处理
ShowMessage('Failed to get volume information.');
end;
end;
这个示例程序同样创建了一个简单的窗体,其中包含一个按钮。当按钮被点击时,会调用GetVolumeInformation函数来获取指定卷的信息。你可以根据实际需求,修改 RootPath 变量的值来指定要获取信息的卷的根路径。
需要注意的是,前面的回答中,体积名称缓冲区大小和文件系统名称缓冲区大小应该使用SizeOf函数获取,而不是直接指定一个固定的大小。请参考这个示例程序。