Bonjour les experts,
J'ai déjà ,il y a quelques années programmé léger en Visual C++ Version 6 (avec MFC). Je viens d'acheter Microsoft Visual Studio 2005 Standard et je me suis remis à la programmation basique en C++ .
Voici mon problème:
Dans mon programme, j'ai établi un «*Array de FileSystemInfo*» par la Classe DirectoryInfo au moyen du membre GetFileSystemInfos.Je récupère ainsi la liste des fichiers et sous répertoire de mon repertoire origine(String^ origine). Cele marche très bien puisque je peux lire la liste exacte du chemin complet de ceux ci par le premier «*Console::WriteLine(«*Repertoire .....*».
Mais mon problème provient a la suite: pour chaque élement du «*Array* ^FileSystemInfo^*», je veux tester si c'est un répertoire ou un fichier. Je veux utiliser la propriété «*Attributes.Get()*» pour tester , dans le «*FileAttributes*» donné,si le membre «*Directory*» est présent ou absent . Je saurais affirmer si l'élément est un répertoire ou pas.
Et c'est dans cette ligne du if((File::GetAttributes( .... que ce produit l'erreur ci dessous:
«*Erreur 1 error C3063: opérateur '&'*: tous les opérandes doivent avoir le même type énumération*»
Je veux absolument utiliser la Classe FileSystemInfo et ses membres. Dans la documentation, on parle de pouvoir «*caster*» les éléments de FileSystemInfo en elements de File.... mais je ne sais pas faire.
Je vous soumets une petite parti du code source
Code source:
DirectoryInfo^ dirinfo = gcnew DirectoryInfo(origine); // origine = repertoire
array<FileSystemInfo^>^ reper = dirinfo -> GetFileSystemInfos ();
for(int i=0; i < reper->Length; i++) //liste des fich et sous-dir du rep_ori
{ String^ fich_ou_dir = gcnew String((reper[i]->FullName)->ToString());
Console::WriteLine("Repertoire_{0}: {1}", i, fich_ou_dir);
if ((File::GetAttributes( fich_ou_dir )) & FileAttributes:irectory == FileAttributes:irectory )
{ Console::WriteLine("\n\n OUIIIIIIIII c'est un directory");
}
}
Voilà, si quelqu'un connait la syntaxe exacte pour obtenir mon résultat, je suis prenneur.
Autre petite question banale: quelle syntaxe pour convertir un int en String^ ???
Grand merci d'avance à ceux qui voudront m'aider.
Partager