查看 Windows 资源管理器的完整撤消历史记录

Syn*_*ech 16 windows windows-explorer undo windows-xp

背景

Windows 资源管理器维护一个文件操作列表,以便您可以撤消它们(XP 中最多 10 个操作,Vista 中最多 32 个操作)。您可以通过打开“编辑”菜单在不执行的情况下查看最后一个操作,并突出显示“撤消”命令而不选择它并查看状态栏(尽管如此,它通常不起作用,只在状态栏中显示一个空白字符串) .

问题

不幸的是,这不仅会在状态栏中显示操作(默认情况下未启用),而且只会显示最后一次操作。更糟糕的是,它只显示操作和文件,而不显示路径。

用例场景

一个例子是使用,如果您重命名和移动一堆的文件,尤其是类似名称的类似文件download1.pngdownload2.png等等,然后认识到,你忘了移动文件的重命名一个之后。查看最后修改的几个文件名和路径的列表可以让您找出遗漏了哪个,而不必撤消所有可能会使事情变得一团糟的后续操作。

有谁知道一种方法来获取 Windows 存储在其撤消缓冲区中的所有操作的列表?我见过可以连接到 Windows 并执行不受支持的操作的程序,例如重新排列任务栏和托盘图标(XP 不支持),所以我希望有人设法对撤消缓冲区执行相同的操作。

小智 6

希望我正确地得到了你正在寻找的东西。如果是这样,似乎有 WinAPI 方法 - ReadDirectoryChangesW可能会执行您的期望。

我不确定以下方法是否适用于文件操作历史记录或仅显示使用后所做的更改,但是,因为这种方法没有太大不同并且可能会在您提供的场景中使用,我会提到即使它可能稍微偏离主题:

您可能能够连接FileSystemWatcher的对象到一个文件夹(但链接的话题是不同的,这个恕我直言,给人的阶级目的很好的概述) -这是C#.NET类的,我知道,但什么是C#可以做的PowerShell如图所示通过微软脚本中心的这个脚本

您可能会考虑使用 3rd 方解决方案,例如Windows 资源管理器跟踪器,它们似乎也做同样的事情(我相信他们更愿意使用(记录在案的)API 调用而不是逆向工程技术——但您似乎有点担心它们,所以我只查找了一个)。

最后但并非最不重要的一点是,您甚至可以考虑编写一个基于FileSystemWatcher的简单WPF 应用程序或更复杂的 WPF 应用程序调用ReadDirectoryChangesW方法。