Asp.net - charger tous les sous-répertoires dans un datatable

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 646 fois - Téléchargée 30 fois

Contenu du snippet

Dans bien des cas, on souhaiterait pouvoir charger tous les Sous-Répertoires à partir d'un Point donné (transmis en paramètre) dans un objet de Gestion de données. Mon exemple va simplement charger le contenu d'un répertoire dans un DataTable.

On va donc partir de la source suivante que l'on va adapter à notre besoin :
- http://www.aspfr.com/code.aspx?ID=9031

Source / Exemple :


' -----------------------------------------------------
' Fonction très simple qui charge dans un DataTable à 2 colonnes la liste 
' des sous-Répertoires d'un répertoire trasmis en paramètre
' Le paramètre sera du Type : C:\MonRepertoire

Private Function ChargeListeSousRep(ByVal Racine As String) As DataTable
 Dim LaTableTemp As New System.Data.DataTable()
 Dim myColumn As DataColumn = New DataColumn()
 Dim myRow As DataRow

 ' Paramétrage des Colonnes
 myColumn.DataType = System.Type.GetType("System.String")
 myColumn.AllowDBNull = False
 myColumn.Caption = "Chemin"
 myColumn.ColumnName = "Chemin"
 LaTableTemp.Columns.Add(myColumn)

 myColumn = New DataColumn()
 myColumn.DataType = System.Type.GetType("System.String")
 myColumn.Caption = "Nom"
 myColumn.ColumnName = "Nom"
 LaTableTemp.Columns.Add(myColumn)

 Dim ListeSousRepertoires As String() = System.IO.Directory.GetDirectories(Racine)
 Dim PosFinale As Integer = Racine.Length

 Dim subdirectory As String
 For Each subdirectory In ListeSousRepertoires
  myRow = LaTableTemp.NewRow()
  myRow("Chemin") = subdirectory
  myRow("Nom") = subdirectory.Substring(PosFinale + 1)
  LaTableTemp.Rows.Add(myRow)
 Next subdirectory

 Return LaTableTemp
End Function

' ---------------------------------------------
' Le résultat sera de la forme :
' C:\MonRepertoire\Repertoire1 | Repertoire1
' C:\MonRepertoire\Repertoire2 | Repertoire2
' C:\MonRepertoire\Repertoire3 | Repertoire3
' C:\MonRepertoire\Repertoire4 | Repertoire4

Conclusion :


Avec ce résultat, vous pouvez 'Binder' n'importe quel élément .NET (DataGrid, DataList, DropDownList, ...)

Bon Coding

Romelard Fabrice (Alias F___)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.