Asp.net - sauvegarder dans un fichier xml la liste des fichiers présents dans un répertoire donné

Contenu du snippet

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___)

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.