Problème : nom de répertoire non valide c#

Résolu
snakeissat Messages postés 30 Date d'inscription jeudi 20 mai 2010 Statut Membre Dernière intervention 8 juillet 2012 - 14 juin 2012 à 15:27
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 14 juin 2012 à 18:44
Bonjour,
j'ai un problème avec le FileInfo
en faite j'ai besoin d'fficher la liste des rep et des fichier d'un rep et leurs tailles,
pour le calcul de la taille des rep j'utilise
private Int64 DirectoryLength(DirectoryInfo folder)

{ Int64 bytes = 0;

foreach (FileInfo fi in folder.GetFiles())

bytes += fi.Length;

foreach (DirectoryInfo i in folder.GetDirectories())

bytes += DirectoryLength(i);

return bytes;

}

reps = System.IO.Directory.GetDirectories(chemin);
for (i = 0; i < reps.Length; i++)
{
tailleRep[i] = DirectoryLength(new DirectoryInfo(reps[i]));
}
ça marche alors que pour les fichiers ça génère une exception nom repertoire non valide bien que le chemin est valide

//**********************
files = System.IO.Directory.GetFiles(chemin);
for (j = 0; j < files.Length; j++)
foreach (FileInfo fi in new DirectoryInfo(files[j]).GetFiles())
{
tailleFiles[j] = fi.Length;

}

3 réponses

snakeissat Messages postés 30 Date d'inscription jeudi 20 mai 2010 Statut Membre Dernière intervention 8 juillet 2012
14 juin 2012 à 18:39
donc il faut tester si la valeur de files[j] est un chemin ou le nom d'un rep, merci bien Whismeril
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
14 juin 2012 à 18:44
De rien, mais il t'aurais suffit de survoler les variables de la ligne avec ta souris et d'attendre que l'infobulle s'affiche pour le voir.

@+

Whismeril
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
14 juin 2012 à 18:18
Bonsoir,

pour citer NHenry
Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )

J'ajouterais de penser à l'indentation.

Quand je teste ton code chez moi, ça plante là
foreach (FileInfo fi in new DirectoryInfo(files[j]).GetFiles())


parce que le files[j] a pour valeur "c:\\temp\\toto.txt", et dans toto.txt il n'y a pas d'autres fichiers...

Whismeril
-2
Rejoignez-nous