Sauvegarde les données DateTime d'un fichier et les restituer après modification de ce fichier

Bonjour,
J’ai un fichier image sur le disque, je veux le recadrer et le sauvegarder avec le même nom et même emplacement tout en gardant la date et heure d’origine de création et de modification…

voilà la partie du code ou je préserve les données de date et heure…

dim dateCrea, dateModif as DateTime
dateCrea = file.CreationDateTime
dateModif = file.ModificationDateTime

SansBleu.Save(file,Picture.Formats.JPEG)

file.CreationDateTime = dateCrea
file.ModificationDateTime = dateModif

sauf que le résultat c’est que j’ai pas la même heure, j’ai une autre heure toujours la même par contre mais je ne pige cette heure, elle correspond à rien…

alors soit c’est moi qui n’a pas pigé un truc ou alors c’est un bug ?

ce qui est dans le dossier Archive Bleu est l’original qui est sauvegarder, les fichiers a l’extérieur de ce dossier sont les fichiers modifier et sauvegarder dans le même dossier, on peux voir que les heures ne corresponde pas à l’original…

merci d’avance pour votre aide :wink:

Je viens de faire un rapport de bug…

ça ressemble belle et bien à un bug, ou alors c’est moi qui fait erreur dans l’utilisation de ces fonctions ?

La documentation dit :
To change the ModificationDateTime, you must create a new instance of a DateTime and assign it to the property. In this example, the user selects a file and the ModificationDateTime of that file is set to the current date time via DateTime.Now.

je pense que vous n’avez pas compris ce que je veux faire, je veux changer le contenu d’un fichier tout en gardant la date et l’heure de création et de modification celle d’avant la modification…

Si si, j’avais bien compris.
Et vous, avez-vous bien lu l’extrait de la doc ?

Donc j’ai fait :

dim dateCrea, dateModif as DateTime = DateTime.Now
dateCrea = file.CreationDateTime
dateModif = file.ModificationDateTime

SansBleu.Save(file,Picture.Formats.JPEG)

file.CreationDateTime = dateCrea
file.ModificationDateTime = dateModif

et le résultat est aussi aléatoire, les heures ne corresponde pas :

est ce que c’est un bug comme j’en avais déjà signalé un et que c’était le cas, j’ai l’impresion que Xojo est a plus d’un bugs sur les heures de fichiers

Il n’y a pas de bug (ici).
Le code ci-dessous fonctionne très bien, tu peux le tester dans l’event Action d’un bouton par exemple :

Var f As New FolderItem
f = FolderItem.ShowOpenFileDialog("")

If f <> Nil Then
  Var maDateModif As DateTime = New DateTime(2010, 6, 11)
  f.ModificationDateTime = maDateModif
  Var maDateCrea As DateTime = New DateTime(2010, 5, 20)
  f.CreationDateTime = maDateCrea
End If

ce n’est pas la même chose, là je copie une DateTime d’un fichier et je l’a restaure par la suite et là ça déconne…

j’ai envoyez ce projet dans l’app de feedback de Xojo, vois le projet :

I have the same problem. It’s a bug. When I create

d1 = new Datetime (2021, 10, 17, 15, 45, 0)

and do

f.ModificationDateTime = d1

the Finder shows ‘17 October 2021 at 16:45’

??? 1 Hour ahead ???
I even have a customer who’s Finder date is set 1h40m ahead.

So this is definitely a bug. If I want the Finder’s date to be ‘17 October 2021 at 15:45’ then it should become that date, and not some datetime via a strange calculation inside Xojo.


Not OT, but I have a question:

Q. do you understand the concept of Modification Date ?

A. The date when the file was modified… last.

Else, you will get a Read Date that is younger than the Modification Date.

i reported the bug and it’s recognized as a bug and it’s set, it’s gonna be on the next version of Xojo…

<https://xojo.com/issue/66045>