Qu’est-ce que le répertoire $deleted sous Windows?Tableau d’art


Sur la base du contenu de la question Server Fault liée, les fichiers dans $Deleted sont des fichiers pour lesquels un certain programme Windows a demandé la suppression, que tous les handles ouverts permettent la suppression du fichier, et qui bien que supprimés ne sont pas réellement partis.

Sur Linux et d'autres systèmes Unix ou de type Unix, lorsque vous supprimez un fichier ouvert dans un autre programme, le nom du fichier est libéré, mais la suppression du fichier est retardée pour le moment où le fichier est fermé par le dernier programme qui l'a ouvert.


Sur Windows, les fichiers peuvent être ouverts dans plusieurs modes et peuvent autoriser (ou non) la lecture, l'écriture ou la suppression simultanée (entre autres autorisations) dans ses autorisations FILE_SHARE_*. Certains programmes peuvent demander spécifiquement FILE_SHARE_DELETE, ce qui lève le blocage par défaut de la suppression dudit fichier. Le fichier peut alors être supprimé et, sur les versions modernes de Windows 10, le nom du fichier est en fait libéré (soi-disant) et le fichier renommé en quelque chose de $deleted. Ce n'est pas un chemin auquel Win32 peut généralement accéder.


L'API POSIX, WSL, Cygwin ouvrent généralement les fichiers avec la sémantique Linux, de sorte qu'ils passent en interne l'indicateur FILE_SHARE_DELETE à l'OS. De cette façon, les fichiers peuvent toujours être supprimés sans fermer tous les handles.

Normalement, au redémarrage, ces fichiers doivent être effacés.

Les fichiers sont effacés.