24 ans
Messages postés231Date d'inscriptionlundi 27 novembre 2000StatutMembreDernière intervention 7 juillet 2008
-
25 oct. 2005 à 12:01
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 2012
-
26 oct. 2005 à 11:49
je veux lister les fichier qui se trouve dans un repertoire père ainsi dans les sous repertoire
comment faire je suis débutant
t_barbillon
Messages postés341Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention10 février 20092 25 oct. 2005 à 16:36
Salut, l'exemple précédent n'était pas simple, à cause du pb de
dimensionnement du tableau, alors pour éclairer ta lanterne sur la
récursivité voici autre chose
public void GetAllFiles(string Path)
{
//Pour tous les fichiers présents dans le dossier courant
foreach(string File in System.IO.Directory.GetFiles(Path))
{
//Ajouter le nom à MyListBox
MyListBox.Items.Add(File);
}
//Pour tous les dossiers présents dans le dossier courant
foreach (string Folder in System.IO.Directory.GetDirectories(Path))
{
//Réexecuter la fonction
GetAllFiles(Folder);
}
}
Ce qui donne dans le cas d'une arborescence
MonDossierN1
|_MonDossierN2_A
| |_MonDossierN3_A
|_MonDossierN2_B
>Itération 1 : Listage des fichiers du dossier MonDossierN1
>Itération 2 : Listage des fichiers du dossier MonDossierN2_A (premier dossier fils)
>Itération 3 : Listage des fichiers du dossier MonDossierN3_A
>Itération 4 : Listage des fichiers du dossier MonDossierN2_B (second dossier fils)
t_barbillon
Messages postés341Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention10 février 20092 25 oct. 2005 à 12:29
Salut, tu fais une fonction récursive qui utilise les fonction
System.IO.Directory.GetFiles() System.IO.Directory.GetDirectories(),
comme ça tu liste tous les fichiers présent dans le dossier parant puis
tous ses sous dossiers, et pour chacun d'eux tu réappelle la méthode
System.IO.Directory.GetFiles().
En fait cela va te donner un truc du style :
public static string[] GetAllFiles(string Path)
{
string[] AllFiles = new string[GetFilesCount(Path, true)];
GetAllFiles(Path, ref AllFiles);
return AllFiles;
}
avec :
public static int GetFilesCount(string Path, bool Deep)
{
int FilesCount = System.IO.Directory.GetFiles(Path, "*.*").Length;
t_barbillon
Messages postés341Date d'inscriptionmercredi 8 juin 2005StatutMembreDernière intervention10 février 20092 25 oct. 2005 à 12:33
[Suite et fin]
La fonction n'est pas du tout optimisée, tu peux supprimer la méthode
GetFilesCount(string Path, bool Deep). Au lieu d'allouer tout de suite
un tableau à la bonne dimension, tu stocke le retour private static
void GetAllFiles(string Path, ref string[] FilesContainer) dans un
tableau temporaire que tu recopies dans ton tableau définitif avec
Array.CopyTo().
24 ans
Messages postés231Date d'inscriptionlundi 27 novembre 2000StatutMembreDernière intervention 7 juillet 20082 25 oct. 2005 à 13:47
j' ai utilisé cette source mais un message d'erreur est survenu: Le tableau de destination n'est pas assez long. Vérifiez destIndex et la longueur, ainsi que les limites inférieures du tableau.
que doit je faire je suis faible dans la récursivité?
Vous n’avez pas trouvé la réponse que vous recherchez ?
24 ans
Messages postés231Date d'inscriptionlundi 27 novembre 2000StatutMembreDernière intervention 7 juillet 20082 26 oct. 2005 à 10:48
le cas local ,c'est marché trés bien mais j'ai besoin aussi de faire la même chose mais dans mon compte ftp comment procéder ? sachant que j'ai télécharger une dll qui me permet de se connecter un serveur ftp et de télécharger des fichiers.
si vous voulez je vous envoie cette dll par mail pour en savoire plus.
je suis heureux pour votre aide