gpt4 book ai didi

c# - 查找具有特定备用数据流的所有文件是否是存储自定义标签的有效方法?

转载 作者:行者123 更新时间:2023-11-30 12:58:45 25 4
gpt4 key购买 nike

我正在为最终用户编写一个启动器/安装程序,除其他外,它可以选择在“开始”菜单和/或桌面上生成快捷方式。

理想情况下,我希望这些快捷方式能够支持这些场景:

  • 用户根据自己的喜好更改显示的名称;
  • 用户将快捷方式移动或复制到其他地方(例如,快速启动);
  • 启动器稍后发现它需要更新快捷方式的图标和/或目标位置。

现在,启动器对此并不聪明——如果它已经找到了具有当前名称的快捷方式,它就会不管它;如果没有,它将创建一个新的。因此,如果关于快捷方式的某些内容发生了更改,无论是用户更改了,还是启动器的数据库更改了,您现在都会得到一个当前的和一个不是当前的。

为了正确跟踪包括移动和复制在内的快捷方式,我想知道在每个仅包含 UUID 的快捷方式中放置一个 NTFS 备用数据流“FoobarInstaller.Shortcut”是否是一个可行的选择。然后我会理想地扫描整个用户目录树(或者可能只是典型的位置,如桌面、开始菜单和快速启动)以查找带有流的文件,并查看是否需要对这些文件应用更新。

我不知道这是否有效。 NTFS/Win32 是否具有 API 以有效地按名称查找具有特定 ADS 的所有文件?

最佳答案

NTFS 有一种唯一标识文件的方法:对象 ID。它们在重命名时不会改变,您可以按 ID 查找文件。您可以将对象 ID 的数据库保存在一个众所周知的地方(例如,在用户应用程序数据目录中)。然后您可以在恒定时间内找到所有现有的快捷方式。

我相信某些 Windows“移动快捷方式修复”功能会使用此功能。

关于c# - 查找具有特定备用数据流的所有文件是否是存储自定义标签的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28724025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com