Bonjour à tous,
Je souhaite, pour une application, changer dynamiquement l'icône de certains dossiers. Pour cela, j'ai recherché sur le net la manière de le faire et à priori, il faut créer un fichier desktop.ini avec une ligne IconFile="chemin".
J'ai en plus trouvé une fonction qui le fait. Le souci étant qu'à l'exécution, l'accès au dossier est systématiquement refusé, quelque soit l'emplacement de ce dossier (en local (bureau, téléchargements), sur le réseau d'entreprise).
Voici le code et l'erreur (le folderpath est attribué manuellement pour les tests seulement, car normalement le dossier se trouve sur le réseau, j'ai voulu tester d'abord en local):
Le PC est sous windows 7 professionnel SP1 32 bits. L'UAC a été désactivée pour les tests (essayé avec en plus évidement). Le dossier n'est pas en lecture seule et l'utilisateur a les droits d'administrateur.
J'ai testé de lancer l'application par la fenêtre (:p) mais c'était pas une bonne idée donc je l'ai lancée en administrateur, toujours rien.
L'application utilise clickOnce à l'origine, mais j'ai aussi tenté en désactivant la sécurité clickonce (notamment pour lancer en admin l'application) et ça n'a au final rien changé.
Bref je suis à court d'idées et ai perdu une journée là-dessus. :/
Si quelqu'un a une idée, je suis preneur.
Merci à vous par avance et si vous avez des questions n'hésitez pas à les poser, j'y répondrai comme je le pourrais, étant donné que je n'ai pas installé les systèmes ni le réseau dans l'entreprise je ne connais pas tout de leur fonctionnement.
Edit: Si je supprime le dossier et le recréé(vierge donc), le code s'exécute sans erreur, par contre, l'icône ne change pas pour autant. L'icône montre bien un fichier .ini dedans mais une fois ouvert, et malgré le fait que j'ai coché "montrer les dossiers... cachés et système" dans les options de dossier, le dossier apparait vide, donc impossible d'en vérifier le contenu.
Et avec un: C:\Users\Utilisateur>more "C:\Users\Utilisateur\Desktop\nomDuDossier\DESKTOP.INI"
En ligne de commande, ça donne un vide(comme ci-dessus, copié/collé de l'invite de commande)
Edit2: En enlevant le FileAttributes.Hidden de la ligne:
File.SetAttributes(iniFilePath, FileAttributes.System)
Je vois le fichier, il contient:
Mais toujours pas de changement d'icône.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 [.ShellClassInfo] IconFile=C:\Users\Utilisateur\Downloads\commande.ico IconIndex=1
Partager