首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DelphiRADStudio10.2,无法使用FileOpenDialog浏览windows系统文件夹

DelphiRADStudio10.2,无法使用FileOpenDialog浏览windows系统文件夹
EN

Stack Overflow用户
提问于 2020-05-05 19:35:27
回答 1查看 137关注 0票数 0

我需要能够枚举在运行Windows服务器的Windows 2016实例中的C:\Windows\system32\dns下的文件夹。

在尝试了FindFirst()/FindNext()并没有得到任何结果之后,我构建了一个快速的VCL来了解正在发生的事情。我有一个TButton和一个TEdit,按钮的OnClick在下面:

代码语言:javascript
复制
procedure TForm1.Button1Click(Sender: TObject);
begin
  FDir := 'C:\Windows\System32\';

  with TFileOpenDialog.Create(nil) do
    try
      Title := 'Select Directory';
      Options := [fdoPickFolders, fdoPathMustExist, fdoForceFileSystem];
      OkButtonLabel := 'Select';
      DefaultFolder := FDir;
      FileName := FDir;
      if Execute then
        Edit1.Text := Filename;
    finally
      Free;
    end;
end;

当我以管理员身份或通常在服务器上运行它并尝试浏览到FileOpenDialog中的文件夹FileOpenDialog时,我会得到一个错误:

窗口找不到‘C:\ Windows \system32 32\dns’。检查拼写,然后重试。

但是,我知道文件夹是存在的,我可以在服务器上使用Windows浏览它,所以Delphi代码或应用程序运行的权限肯定有问题。

拜托,有人能建议我该怎么做才能解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-05 20:17:46

感谢@SertacAkyuz提醒我文件系统重定向-尝试从32位程序访问%Windir%\ system 32将被重定向到%Windir%\SysWow64 64,其中不包含dns文件夹。

您可以使用虚拟别名%Windir%\Sysnative从32位应用程序获得对实际system32文件夹的访问,这适用于上述情况。因此,浏览到%Windir%\sysnative\dns允许我正确枚举文件夹。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61621549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档