Empêcher l'Explorateur Windows d'utiliser « LocalizedResourceName » lors du renommage d'un fichier ou dossier depuis les résultats de recherche

C’est peut-être uniquement sur les versions localisées de Windows, je ne sais pas.

Si vous renommez un dossier alors que vous êtes dans une fenêtre de résultats de recherche Windows, au lieu de renommer le fichier, il crée un fichier desktop.ini et ajoute une variable LocalizedResourceName avec le nouveau nom à la place.

En conséquence, il y aura une divergence entre le vrai nom du dossier et le nom affiché du dossier dans l’Explorateur Windows.

J’ai passé des heures ce soir à essayer de trouver une solution, puis à essayer de supprimer les fichiers desktop.ini dans un dossier spécifique de manière récursive sans succès.

Alors, me voilà, en train de demander de l’aide. Est-ce un bogue ou pas ?!

  • Existe-t-il un moyen d’empêcher l’Explorateur Windows de modifier le fichier desktop.ini et plutôt de renommer le nom de fichier réel ?

  • Si c’est un bogue, pourquoi ne puis-je pas trouver plus de gens qui s’en plaignent ? Y a-t-il quelque chose qui ne va pas avec la machine sur laquelle j’obtiens ce problème ? Et si c’est le cas, comment diagnostiquer cela ?

  • Comment se débarrasser des fichiers desktop.ini comme solution de contournement ? J’ai essayé PowerShell, j’ai essayé Unlocker et LockHunter. J’ai essayé de nombreuses choses y compris la commande del /f /s. Tout échoue parce que Windows protège ces fichiers système.

Notez que dans le passé, sur la même machine, et sous Windows 10, j’ai essayé de corriger cela en examinant Windows Search. Sans succès. J’ai même fini par déplacer les fichiers d’index et essayer différents ensembles de permissions. Cela pourrait-il être lié ? (Pourquoi ?!)

J’espère que quelqu’un pourra aider. Cela m’a rendu vraiment fou.

Je constate effectivement le comportement décrit par l’auteur.

Dossier de test avec deux sous-dossiers :

Renommage n°1 via le dossier de fichiers :

Résultat de l’étape n°2 :

Recherche : kind:Folder :

Renommage n°2

Résultat de l’étape n°5 (notez le changement d’attribut et le nom du dossier système inchangé) :

Contenu de desktop.ini dans le n°2 :

[.ShellClassInfo]
LocalizedResourceName=Ordinary Folder II -Renamed

Comme je (et apparemment d’autres) n’étais pas au courant de ce comportement, je ne connais pas de « correctif ». La solution de contournement suggérée par @John, quitter la recherche avant de renommer, semble être la meilleure option à court terme.

Vous n’avez pas besoin de supprimer les fichiers desktop.ini pour que les dossiers affichent leurs noms de système de fichiers ; effacer l’attribut ReadOnly du dossier empêchera le traitement du fichier desktop.ini. Ce snippet PowerShell effacera récursivement l’attribut pour tout dossier contenant un fichier desktop.ini (en commençant par le répertoire de travail actuel) :

gci desktop.ini -Recurse -Force | ForEach{
    $folder = Get-Item $_.DirectoryName
    $folder.Attributes = $folder.Attributes -band -not [IO.FileAttributes]::ReadOnly
}

Et ceci rétablira l’attribut :

gci desktop.ini -Recurse -Force | ForEach{
    $folder = Get-Item $_.DirectoryName
    $folder.Attributes = $folder.Attributes -bor [IO.FileAttributes]::ReadOnly
}