Pour différents besoins, un fichier XML peut être nécessaire contenant la liste des fichiers dans un répertoire.
Le code est inspiré de FAB DOWNLOAD MANAGER disponible ici :
-
http://www.aspfr.com/code.aspx?id=23262
Attention, ce code est une portion de code que vous pouvez insérer dans votre projet. Il n'est pas autonome.
Source / Exemple :
...
Private DataSetListeFichier As New DataSet("ListeFichiers")
Private DateBase As DateTime = CType("01-01-1900", DateTime)
...
' -----------------------------------------------------
Private Sub ScanImagesfilesToXML()
' Lance le Scan des fichiers du répertoire afin de les sauvegarder dans un fichier XML
ChargeListeSousRep(System.Configuration.ConfigurationSettings.AppSettings("CheminImages"))
DataSetListeFichier.WriteXml("ListeFichier.xml")
End Sub
' -----------------------------------------------------
Private Sub ChargeListeSousRep(ByVal Racine As String)
Dim myFileInfo As FileInfo
Dim myDirInfo As DirectoryInfo
Dim TableauFileInfo As Array
Dim myRow As DataRow
Dim myDataView As DataView
Dim CheminRep As String = Racine
PrepareDatatable()
myDirInfo = New DirectoryInfo(CheminRep)
If myDirInfo.Exists Then
TableauFileInfo = myDirInfo.GetFiles()
For Each myFileInfo In TableauFileInfo
Console.WriteLine("Fichiers : " & myFileInfo.Name)
myRow = DataSetListeFichier.Tables("Fichiers").NewRow()
myRow("LIBELLE") = myFileInfo.Name
myRow("CHEMIN_FICHIER") = CheminRep & "\" & myFileInfo.Name
myRow("DATE_FICHIER") = myFileInfo.LastWriteTime
myRow("COMMENTAIRE_FICHIER") = "Fichier " & myFileInfo.Extension.ToUpper.ToString.Trim & " - Taille : " & FormatteTailleFichier(myFileInfo.Length)
myRow("TYPE_FICHIER") = myFileInfo.Extension.Replace(".", "").Trim.ToString.ToUpper
DataSetListeFichier.Tables("Fichiers").Rows.Add(myRow)
Next myFileInfo
' Create a new DataView and sort it based on the field passed in.
myDataView = DataSetListeFichier.Tables("Fichiers").DefaultView
myDataView.Sort = "LIBELLE"
End If
End Sub
' -----------------------------------------------------
Private Function RecupDateFichier(ByVal CheminFichier As String) As DateTime
If CheminFichier = "" OrElse Not System.IO.File.Exists(CheminFichier) Then
Return DateBase
Else
Return System.IO.File.GetLastWriteTime(CheminFichier)
End If
End Function
' ------------------------------------------------------------------------------
Public Function FormatteTailleFichier(ByVal NombreOctets As String) As String
Dim Val As Int64 = CType(NombreOctets, Int64)
If (Val / 1000000000) > 1 Then
Return Math.Round(Val / 1000000000, 2) & " Go"
ElseIf (Val / 1000000) > 1 Then
Return Math.Round(Val / 1000000, 2) & " Mo"
Else
Return Math.Round(Val / 1000, 2) & " Ko"
End If
End Function
' -----------------------------------------------------
Private Sub PrepareDatatable()
Dim myColumn As DataColumn = New DataColumn()
Dim TableTemp As New DataTable("Fichiers")
myColumn.DataType = System.Type.GetType("System.String")
myColumn.AllowDBNull = False
myColumn.Caption = "LIBELLE"
myColumn.ColumnName = "LIBELLE"
TableTemp.Columns.Add(myColumn)
myColumn = New DataColumn()
myColumn.DataType = System.Type.GetType("System.String")
myColumn.Caption = "CHEMIN_FICHIER"
myColumn.ColumnName = "CHEMIN_FICHIER"
TableTemp.Columns.Add(myColumn)
myColumn = New DataColumn()
myColumn.DataType = System.Type.GetType("System.String")
myColumn.Caption = "COMMENTAIRE_FICHIER"
myColumn.ColumnName = "COMMENTAIRE_FICHIER"
TableTemp.Columns.Add(myColumn)
myColumn = New DataColumn()
myColumn.DataType = System.Type.GetType("System.String")
myColumn.Caption = "DATE_FICHIER"
myColumn.ColumnName = "DATE_FICHIER"
TableTemp.Columns.Add(myColumn)
myColumn = New DataColumn()
myColumn.DataType = System.Type.GetType("System.String")
myColumn.Caption = "TYPE_FICHIER"
myColumn.ColumnName = "TYPE_FICHIER"
TableTemp.Columns.Add(myColumn)
DataSetListeFichier.Tables.Add(TableTemp)
End Sub
Conclusion :
Bon Coding
Romelard Fabrice (Alias F___)
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.