windows - TFileListBox 组件查找不再存在的文件

标签 windows delphi vcl file-copying filelist

我在 Windows 7 上使用 Delphi 7,并且有一个应用程序使用 TFileListBox 组件来迭代目录中的文件并将它们复制到备份目录。

我遇到一些奇怪的行为,TFileListBox 正在检测目录中不存在的文件?我正在处理的目录包含 75 个文件,但 TFileListBox 检测到超过 100 个文件。

我更改了资源管理器设置以显示隐藏/系统文件,但仍然无法看到这些额外文件的来源。

我想知道 Windows 7 以前的版本是否在这个问题中发挥了作用,因为我相当确定 TFileListBox 正在检测的额外文件曾经一度驻留在该目录中,但已被删除...

对此的任何帮助将不胜感激。

最佳答案

我们从上面的评论中发现,该问题与应用程序虚拟化时使用的虚拟存储有关。虚拟商店是随 Windows Vista 一起引入的,作为无需管理员权限即可运行应用程序的一部分。这些文件出现在虚拟存储中是因为您的应用程序正在写入程序文件目录,而标准用户没有写入权限。

引入虚拟化是为了帮助处理那些不会重新编译以考虑新 Vista 策略的遗留应用程序。如今您根本不应该构建虚拟化应用程序。

您可以通过将应用程序 list 链接到包含 <requestedExecutionLevel level="asInvoker"/> 的应用程序来禁用虚拟化。部分。

当您这样做时,您无疑会发现一些其他问题,因为您的应用程序可能会尝试写入程序文件目录、注册表的 HKLM 部分等。虽然进行这些更改可能看起来很痛苦,但它们是值得付出努力。

关于windows - TFileListBox 组件查找不再存在的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6745622/

相关文章:

python - 在带有 python 的 windows 中使用绝对 unix 路径

c# - 该类未配置为支持提升激活

delphi - Delphi 6中带有自定义TRadioButton控件的TRadioGroup吗?

windows - 确定 Windows 和 Office 版本的快速命令或批处理脚本

windows - 无法找到 heroku toolbelt 在 windows 上安装的工头

delphi - Delphi 2010 中的 ASyncPro 5.00 - 范围检查错误

delphi - 如何更改 TDBNavigator 组件的行为?

delphi - 当 TDBGrid.DefaultDrawing 为 false 时,如何对选定的全行 TDBGrid 进行正确的所有者绘制?

windows - 有没有一种方法可以自动批准Bamboo远程代理,而无需在Bamboo服务器上手动批准它?

delphi - TVirtualStringTree ScaleBy Stretch