OnT*_*Fly 6 filesystems delphi winapi
我想重现在任一给定文件的Windows资源管理器 - >属性对话框 - >常规属性页中显示的行为.具体来说,我想重现"磁盘大小"字段的确切值.
正如其他人所说,您需要使用GetFileInformationByHandleEx
,但看起来您需要使用FILE_STANDARD_INFO
or FILE_ID_BOTH_DIR_INFO
。您想要的信息在AllocationSize
每个成员中返回,但第二个用于目录句柄,列出其中的文件而不是目录本身(注意:不是递归,只是顶级)。为了使它更容易,FILE_STANDARD_INFO
有一个Directory
布尔值,所以如果您不确定,请先调用它。根据 的文档FILE_ID_BOTH_DIR_INFO
,
AllocationSize 包含指定为文件分配多少空间的值(以字节为单位)。该值通常是底层物理设备的扇区或簇大小的倍数。
这似乎给了你Size on Disk
信息。
我还没有找到该FILE_ID_BOTH_DIR_INFO
结构的 Delphi 翻译。困难似乎是最后一个成员 ,WCHAR FileName[1]
它被描述为:
FileName[1]
包含文件名字符串的第一个字符。在内存中,后面跟着字符串的其余部分。
我不确定 Delphi 中会如何处理这个问题。
归档时间: |
|
查看次数: |
2301 次 |
最近记录: |