显示尺寸和格式

Display size and format

在我的 VCL 表单应用程序中,我添加了:

  1. 按钮
  2. 打开对话框
  3. 编辑
  4. 列表视图

当我用opendialog打开文件时,如何在ListView列中显示文件大小和格式?

这是正在尝试的代码 - 请纠正我的错误,或者我必须添加什么功能才能在 ListView 中显示?

//===============================
procedure TForm1.BntOpen1Click(Sender: TObject);
var
  LI: TListItem;
begin
   if OpenDialog1.Execute then
     LI := ListView1.Items.Add;
    LI.SubItems.Add(Format(OpenDialog1.FileName, [0]));
end;
//===========================

感谢

首先,您缺少 begin .. end; 对。

begin
  if OpenDialog1.Execute then 
  begin  // missing
    // ...
    // fetch file size and update `TListView` here
    // ...
  end;  // missing
end;

然后要获取文件大小,声明一个变量 size: int64; 并使用 TFileStream

var
  size: int64;
...
    fs := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmShareDenyWrite);
    try
      size := fs.Size;
    finally
      fs.Free;
    end;

一定要阅读文件模式和共享常量

你用过listview的Column Designer来声明你需要的列吗? 如果没有,TListView 上的 right-click 和 select Column Designer 菜单中的 right-click。

您正确地向列表视图添加了一个项目,但您从未为其分配标题,所以我会分配文件名,这样就可以清楚地知道大小和类型与哪个文件相关。

  LI.Caption := OpenDialog1.FileName;

然后你将文件的大小添加到一个子项中

  LI.SubItems.Add(IntToStr(size));

最后是文件类型

  LI.SubItems.Add(ExtractFileExt(OpenDialog1.FileName));