Contexte
L'Explorateur Windows conserve une liste des opérations sur les fichiers afin que vous puissiez les annuler (10 opérations jusqu'à XP et 32 à partir de Vista). Vous pouvez voir la dernière opération sans l'exécuter en ouvrant le menu Edition et en mettant en surbrillance la commande Annuler sans la sélectionner et en regardant la barre d'état (même si, souvent, cela ne fonctionne pas et n'affiche qu'une chaîne vide dans la barre d'état) .
Problème
Malheureusement, non seulement cela montre l'opération dans la barre d'état, qui par défaut n'est pas activée, mais cela ne montre que la dernière opération. Pire encore, il affiche uniquement l'opération et le nom du fichier , pas le ou les chemins d'accès.
Scénario d'utilisation
Un exemple d' utilisation est si vous renommer et déplacer un tas de fichiers en particulier les fichiers nommés de la même comme download1.png
, download2.png
, etc., puis réalisez que vous avez oublié de déplacer l' un des fichiers après l' avoir renommé. Voir la liste des derniers noms de fichiers et chemins modifiés vous permettrait de déterminer lequel a été manqué sans avoir à annuler toutes les opérations suivantes qui pourraient faire un gâchis complet.
Question
Quelqu'un connaît-il un moyen d'obtenir une liste de toutes les opérations que Windows a stockées dans son tampon d'annulation? J'ai vu un programme qui peut se connecter à Windows et faire des choses non prises en charge comme la réorganisation des icônes de la barre des tâches et de la barre d'état (XP ne le supportait pas), donc j'espère que quelqu'un a réussi à faire de même avec le tampon d'annulation.
la source
taskbar shuffle
Réponses:
J'espère que j'obtiens correctement ce que vous cherchez. Si c'est le cas, il semble y avoir une méthode WinAPI - ReadDirectoryChangesW qui pourrait faire ce que vous attendez.
Je ne sais pas si l'approche suivante fonctionnera avec l'historique des opérations sur les fichiers ou affichera uniquement les modifications apportées après le moment où elle est utilisée, car cette approche n'est pas si différente et pourrait être utilisée dans le scénario que vous avez fourni, je mentionnerai que même elle pourrait être légèrement hors sujet:
Vous pourriez être en mesure de connecter l' objet FileSystemWatcher à un dossier (pourtant le sujet du lien est différent, cette IMHO donne un bon aperçu de l'objectif de la classe) - c'est la classe C # .NET, je sais, mais ce qui est C # peut être fait PowerShell comme indiqué par ce script du Script Center de Microsoft.
Vous pourriez envisager des solutions tierces telles que le tracker de l'Explorateur Windows qui semblent faire la même chose (je crois qu'ils utilisent plutôt des appels d'API (documentés) que des techniques de rétro-ingénierie - mais vous sembliez un peu inquiets à leur sujet, donc je n'en ai recherché qu'une ).
Enfin, vous pourriez même envisager d'écrire une application WPF simple basée sur FileSystemWatcher ou une application WPF un peu plus complexe appelant la méthode ReadDirectoryChangesW .
la source