【发布时间】:2014-03-11 14:36:09
【问题描述】:
我通常使用TOpenDialog 及其Filter 属性来缩小用户可用文件的范围。我想通过它们的内容进一步过滤这些文件。
例如,打开文件对话框应该只显示带有“.bin”文件扩展名的文件并且它的前 4 个magic bytes 是 0x7F、0x45、0x4C、0x46(ELF 可执行文件)。
该条件不一定总是识别某些可执行格式,而是识别其他二进制数据。
在 Delphi/VCL 中是否有执行此操作的标准方法,或者我是否必须将内容检查推迟到用户选择文件之后?
【问题讨论】:
-
我很想使用一些旧组件来创建我自己的对话框:Mustang Peak VirtualShellTools (code.google.com/p/mustangpeakvirtualshelltools) 或 Embarcadero 的版本 (sourceforge.net/projects/embtvstools) 和 TFindFile (delphiarea.com/products/delphi-components/findfile) 以过滤内容.有关示例,请参见 knowisinc.com/wpdname.html。
-
我无法完成编辑。无论如何,WPDName 通过检查每个文件的前三个字节来识别旧的 Word Perfect 文件。如果你愿意,我会给你来源。