【问题标题】:How to Let Delphi SelectDirectory Show Hidden Directory and Files?如何让 Delphi SelectDirectory 显示隐藏目录和文件?
【发布时间】:2020-01-16 19:16:06
【问题描述】:

我正在使用 Delphi XE3。

调用SelectionDirectory时,如下:

Dir := '';
SelectDirectory(Dir, [], 0);

我发现弹出的“选择目录”对话框不会显示隐藏的文件夹和文件。有没有办法展示它们?

谢谢

【问题讨论】:

  • 使用第二个重载,浏览对话框将符合控制面板设置。您不能影响第一次重载,目录列表是使用 FindFirst[Next] 调用构建的,只有 faDirectory 硬编码为 Attr 参数。
  • @SertacAkyuz SelectDirectory 的第二个版本是否支持创建一个不存在的目录?

标签: delphi directory hidden-files


【解决方案1】:

您使用的是旧版本的SelectDirectory(),它显示了一个使用 Windows 3.1 样式 UI 的自定义 VCL TForm,并在不考虑用户设置的情况下手动搜索文件夹/文件。那个版本的SelectDirectory()不支持你想要的,它不会显示隐藏项。

请改用 SelectDirectory() 的较新重载版本。它显示一个系统提供的对话框,用于浏览尊重用户设置的文件夹/文件。如果这是用户配置资源管理器的方式,它将显示隐藏的项目。

procedure TForm1.Button1Click(Sender: TObject);
var
  Dir: string;
begin
  SelectDirectory('Caption', '', Dir, [], Self);
end;

【讨论】:

  • 新版本的SelectDirectory是否支持创建一个不存在的目录?
  • @alancc 是,如果您在Options 参数中启用sdNewUIsdNewFolder 标志。 Read the documentation.
  • 看了文档还是有很多疑问,1“当使用这种语法时,SelectDirectory不会改变当前目录的值。”,“当前目录”是指GetCurrentDirectory返回的值吗( ) Windows API? 2.第二个版本是否适用于不同的Windows平台。我找不到受支持的 Windows 系统列表。
  • 1.是的。 2. 内部使用SHBrowseForFolder() API,Win95以后的所有Windows平台都可以使用。
  • 谢谢你,雷米。我只是做了一些测试,并在Delphi帮助中写了一些未记录的东西:1.当Root为空字符串''时,对话框将显示计算机中的完整文件夹树,2. Directory的初始值将使显示对话框时选择的目录。如果有任何问题,请纠正我。非常感谢。
猜你喜欢
  • 2021-07-08
  • 2012-10-24
  • 1970-01-01
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
  • 2021-07-22
  • 2012-09-25
  • 2015-02-15
相关资源
最近更新 更多