Bonjour,
je récupère les sous-répertoires d'un répertoire par Directory.GetDirectories(), et j'aimerais n'obtenir que les noms des sous-répertoires qui ne sont pas cachés !
Comment faire ? :o
Bonjour,
je récupère les sous-répertoires d'un répertoire par Directory.GetDirectories(), et j'aimerais n'obtenir que les noms des sous-répertoires qui ne sont pas cachés !
Comment faire ? :o
S'il est caché, je ne pense pas que tu puisse le récuperer tout simplement.
Je sais que pour les fichiers c'est :
Donc peut être que si tu fais un cast ca marchera
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if (tonFichier.GetAttributes()==FileAttributes.Hidden) //fichier caché else //fichier non caché
Ben pourtant je les récupère ! :o
Oui, tu récupères tout, cachés ou pas, c'est à toi de filtrer selon les attributs.
dans ton exmple, tonFichier est de quel type ? Tu la trouves où la méthode getAttributes() ? :o
Il y a peut-être mieux, mais ça devrait faire l'affaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ArrayList al = new ArrayList(); string[] dirs = Directory.GetDirectories("C:\\"); foreach(string dir in dirs) if ((new DirectoryInfo(dir).Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) al.Add(dir);
Je comprends pas leTu peux expliquer stp ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part & FileAttributes.Hidden
Ca tombe mal parce que je cherche à repérer les répertoires cachés !Envoyé par BiMouXeTTe
Quelqu'un a réfléchi à ce problème pendant ce week-end?
Typiquement les attributs d'un fichier son représentés par un masque binaire, en C# ils ont fait une enumération pour chaque attribut (je ne connais pas les valeurs mais j'imagine que ce sont des valeurs entières chacune étant une puissance de deux, c'est-à-dire un seul bit à 1 parmi les 4 octets), supposons qu'on a la définition suivante :Envoyé par maxo
Maintenant supposons que pour un repertoire R, DirectoryInfo(R).Attributes soit égal à 0x12 (00010010).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public enum FileAttributes : int { ReadOnly = 0x01 (00000001), Hidden = 0x02 (00000010), ... Directory = 0x10 (00010000), ... }
Si on fait un & bit-à-bit avec Hidden (00000010) ça nous donne :
En fait pour tester chacun des attributs d'un fichier il faut faire un & binaire avec l'attribut en question pour vérifier que le bit qui lui est associé est bien mis à 1.00010010
00000010 &
--------
00000010 = (Hidden)
Notez également que 0x12 n'est rien d'autre qu'un | ('ou' bit-à-bit) entre les attributs Directory (un repertoire est aussi un fichier) et Hidden.
Bon, je sais que je suis pas pédagogue de génie mais j'espère que ça t'aura un tant soit peu éclairci.
Yep ! Non seulement ça marche mais en plus j'ai tout compris !
Merci
Partager