Sauvegarder la date de creation d'un fichier

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 238 fois - Téléchargée 24 fois

Contenu du snippet

Lors d'une copie ou autre action sur un fichier, la date de création est remplacée par la date de cette action.
Voici donc un snippet qui sauvegarde la date de création de ce fichier.
J'ai pris comme action une copie de fichier.

Imports System.IO

 Private Sub Copyfile(ByRef cheminOrigine As String, ByRef cheminDestination As String)
        Dim fi As New IO.FileInfo(cheminOrigine)
        Try
            If File.Exists(cheminDestination) Then Exit Sub
            fi.CopyTo(cheminDestination, True)
            Sauvegarderdatecreation(cheminOrigine, cheminDestination)
            MessageBox.Show("Opération réussie", "Copie fichier", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Catch ex As IOException
            MessageBox.Show(ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub
    Private Sub Sauvegarderdatecreation(ByRef cheminOrigine As String, ByRef cheminDestination As String)
        Dim t As System.IO.FileInfo
        Dim datecreation As Date
        'recup les info sur le fichier
        t = New System.IO.FileInfo(cheminOrigine)
        datecreation = t.CreationTime
        If (System.IO.File.GetAttributes(cheminOrigine) And FileAttributes.ReadOnly) = FileAttributes.ReadOnly Then 'fichier lecture seule
            'Normale
            System.IO.File.SetAttributes(cheminOrigine, FileAttributes.Archive)
        End If
        System.IO.File.SetCreationTime(cheminDestination, datecreation)
       End Sub


Et pour appeler

 Dim cheminOrigine As String = "chemin complet fichier origine"
        Dim cheminDestination As String = "chemin complet fichier destination"
        If File.Exists(cheminOrigine) Then
            Copyfile(cheminOrigine, cheminDestination)
        End If

A voir également

Ajouter un commentaire Commentaires
CoDubai Messages postés 81 Date d'inscription vendredi 19 septembre 2014 Statut Membre Dernière intervention 15 octobre 2014
26 sept. 2014 à 09:55
Si mon système faisait ca, je serais pas reparti a zéro.
Whismeril Messages postés 18640 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2023 629
16 sept. 2014 à 21:18
Je viens de m'apercevoir que j'ai fait une faute de frappe, j'ai mis if pour fi.

Ma proposition de surcharge n'a de but que l'amélioration du code déjà bien.

Quand à l'utilité pas dans l'immédiat, mais qui sait.
cs_Le Pivert Messages postés 7899 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 21 septembre 2023 137
16 sept. 2014 à 20:54
Bonsoir,

Pour ce qui est de la dénomination des variables, c'est un choix personnel. Je rappelle que ce snippet est fait pour la sauvegarde de la date de création d'un fichier. Ce que j'ai mis en plus c'est la façon de l'employer.

Pour ta 2ème remarque, il y a un paramètre qui empêche le déroulement de la sauvegarde de la date de création dans "Pour appeler"

j'aurais préféré comme commentaire, de savoir si ce snippet était vraiment utile!

@+ Le Pivert
Whismeril Messages postés 18640 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 octobre 2023 629
Modifié par Whismeril le 16/09/2014 à 21:15
Bonsoir, dans une méthode tu appelles ta variable de FileInfo fi et dans l'autre t, ça me semble pas cohérent, au pire fi1 et fi2 pour montrer que ce ne sont pas les mêmes.

Tu devrais prévoir une surcharge de Sauvegardedatecreation, dans laquelle tu passerais fi en paramètre pour le cas ou le fichier serait déplacé et n'existerait plus dans l'emplacement d'origine.

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.