14

Фон

Проводник Windows поддерживает список файловых операций, так что вы можете отменить их (10 операций до XP и 32 из Vista). Чтобы увидеть последнюю операцию, не выполнив ее, откройте меню « Правка» и выделите команду « Отменить», не выделив ее и не глядя на строку состояния (хотя даже в этом случае она часто не работает и в строке состояния отображается только пустая строка). ,

проблема

К сожалению, это не только показывает операцию в строке состояния, которая по умолчанию не включена, но это показывает только последнюю операцию. Хуже того, он показывает только операцию и имя файла, а не путь (и).

Сценарий использования

Например, если вы переименовываете и перемещаете несколько файлов, особенно файлов с одинаковыми именами, таких как download1.png , download2.png и т.д., То понимаете, что забыли переместить один из файлов после его переименования. Просмотр списка последних нескольких измененных имен файлов и путей позволит вам выяснить, какое из них было пропущено, без необходимости отмены всех последующих операций, которые могут привести к полному беспорядку.

Вопрос

Кто-нибудь знает, как получить список всех операций, которые Windows сохранила в своем буфере отмены? Я видел программу, которая может подключаться к Windows и делать вещи, которые не поддерживаются, например, переупорядочивать значки на панели задач и в трее (XP не поддерживает это), поэтому я надеюсь, что кому-то удалось сделать то же самое с буфером отмены.

1 ответ1

5

Надеюсь, я правильно понял, что Вы ищете. Если так, то, похоже, существует метод WinAPI - ReadDirectoryChangesW, который может делать то, что вы ожидаете.

Я не уверен, будет ли следующий подход работать с историей файловых операций или отображать только изменения, внесенные после его использования, однако, поскольку этот подход не так уж отличается и может использоваться в предоставленном Вами сценарии, я упомяну, что даже он может быть немного не по теме

Вы могли бы иметь возможность подключить объект FileSystemWatcher к папке (но тема ссылки другая, это ИМХО дает хороший обзор целей класса) - это класс C # .NET, я знаю, но что такое C #, можно сделать PowerShell, как показано по этому сценарию из Центра сценариев Microsoft.

Вы могли бы рассмотреть сторонние решения, такие как трекер Windows Explorer, которые, кажется, делают то же самое (я полагаю, что они скорее используют (документированные) вызовы API, чем методы обратного инжиниринга - но вы, кажется, немного обеспокоены ими, поэтому я только посмотрел один ).

И последнее, но не менее важное: вы можете даже подумать о написании простого приложения WPF на основе FileSystemWatcher или более сложного приложения WPF, вызывающего метод ReadDirectoryChangesW .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .