[VB.NET] Lister les sous repertoires et les fichiers d'un repertoire

Lister les sous repertoires et les fichiers d'un repertoire [VB.NET] - C#/.NET managed - Programmation

Marsh Posté le 02-08-2009 à 11:24:59    

Bonjour,
Je cherche un bout de code en vb.net permettant de lister tous les sous repertoires et tous les fichiers d'un dossier, et ensuite d'enregistrer le résultat de cette recherche dans un fichier texte.
 
Si quelqu'un pouvait m'aider parce que je cherche depuis pas mal de temps et je ne trouve rien sur google qui puisse m'aider... :(  
 
merci pour vos réponse

Reply

Marsh Posté le 02-08-2009 à 11:24:59   

Reply

Marsh Posté le 04-08-2009 à 10:10:56    

Finalement j'ai réussi a me débrouiller. Pour ceux que ca interresserait voici mon code:
 
 
Imports System.IO
Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
        Try
            Directory.GetFiles("C:\Program Files", "*.*", SearchOption.AllDirectories)
            Dim monStreamWriter As StreamWriter
            monStreamWriter = New StreamWriter("C:\Liste.txt" )
            Dim dossiersTrouvé = Directory.GetDirectories("C:\Documents and Settings\bl" )
            For Each ligneD In dossiersTrouvé
                monStreamWriter.WriteLine(ligneD)
            Next
            Dim fichiersTrouvé = Directory.GetFiles("C:\Documents and Settings\bl\Bureau", "*.*", SearchOption.AllDirectories)
            For Each ligneF In fichiersTrouvé
                monStreamWriter.WriteLine(ligneF)
            Next
            monStreamWriter.Close()
            Me.Close()
        Catch ex As Exception
            TextBox1.Text = ex.Message
        End Try
 
    End Sub
 
End Class

Reply

Marsh Posté le 08-08-2009 à 00:15:31    

Pour ceux que ça peut intéresser, voici un équivalent en C# avec une présentation sommaire pour le fichier texte.
 

Code :
  1. public void ListFilesAndFolders(string _path, string _file)
  2.     {
  3.         IEnumerable<String> Directories = from String d in Directory.GetDirectories(_path, "*.*", SearchOption.AllDirectories) select d;
  4.         IEnumerable<String> Files = from String f in Directory.GetFiles(_path, "*.*", SearchOption.AllDirectories) select f;
  5.         StreamWriter sw = new StreamWriter(_file);
  6.         string separator = "#########################################################";
  7.         sw.WriteLine("{0}{1} In Directory {2} :{1}{0}{1}{1}{0}{1} Total Folders : {3:### ### ###}{1}{0}", separator, Environment.NewLine, _path, Directories.Count<String>());
  8.         foreach (String d in Directories){sw.WriteLine("[D] {0}", d);}
  9.         sw.WriteLine("{1}{0}{1} Total Files : {2:### ### ###}{1}{0}", separator, Environment.NewLine, Files.Count<String>());
  10.         foreach (String f in Files) { sw.WriteLine("[F] {0}", f); }
  11.         sw.Close();
  12.     }


 
Un aperçu du résultat (un peu raccourci) :
 

Citation :


#########################################################
 In Directory C:\HelloWorld :
#########################################################
 
#########################################################
 Total Folders : 2 567
#########################################################
[D] C:\HelloWorld\MyFolder1
[D] C:\HelloWorld\MyFolder2
 
#########################################################
 Total Files : 3 697
#########################################################
[F] C:\HelloWorld\MyFolder1\text.txt
[F] C:\HelloWorld\MyFolder2\image.jpg


 
J'ai fait des tests sur un dossier avec environs 10.000 sous-dossiers et plus de 30.000 fichiers au total, il faut être un peu patient ^^


Message édité par Kormyr le 08-08-2009 à 00:36:45
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed