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

[Résolu]
Signaler
Messages postés
30
Date d'inscription
jeudi 20 mai 2010
Statut
Membre
Dernière intervention
8 juillet 2012
-
Messages postés
16129
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
29 juillet 2021
-
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

Messages postés
30
Date d'inscription
jeudi 20 mai 2010
Statut
Membre
Dernière intervention
8 juillet 2012

donc il faut tester si la valeur de files[j] est un chemin ou le nom d'un rep, merci bien Whismeril
Messages postés
16129
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
29 juillet 2021
556
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
Messages postés
16129
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
29 juillet 2021
556
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