AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Exaktes Filecopy für Windows und Android
Thema durchsuchen
Ansicht
Themen-Optionen

Exaktes Filecopy für Windows und Android

Ein Thema von skoschke · begonnen am 30. Nov 2018 · letzter Beitrag vom 2. Dez 2018
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.758 Beiträge
 
Delphi 12 Athens
 
#1

AW: Exaktes Filecopy für Windows und Android

  Alt 30. Nov 2018, 13:01
Die zweiten Codeteile von mir nutzen nur IOUtils. Klappt da was nicht auf non-Windows?
Die Routinen aus IOUtils sollten auf allen Plattformen funktionieren.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Exaktes Filecopy für Windows und Android

  Alt 30. Nov 2018, 13:12
Genau diesen Eindruck hatte ich auch, aber ich kann es halt nicht nachmachen.

Danke für Aufklärung!


Ps: Mir fehlen da auch Grundlagenkenntnisse für non-Windows und was da für Attribute/Datumstempel tatsächlich existieren/berücksichtigt werden müssen, an TE bitte vorher informieren, meine Basics zeigen nur Windows Möglichkeiten um was so genau wie möglich dem original nachzuempfinden.

PPs: Dieses Thema gehört nicht nach WinApi :-]
Gruß vom KodeZwerg

Geändert von KodeZwerg (30. Nov 2018 um 13:26 Uhr)
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Exaktes Filecopy für Windows und Android

  Alt 30. Nov 2018, 13:27
Inzwischen war Post #5 entstanden, klingt hervorragend!

Erst kopieren und dann per

Delphi-Quellcode:
...
  sor := 'c:\tmp\Neu.txt';
  des := 'c:\tmp\Neu_2.txt';
  TFile.Copy(sor, des, true);
  dt := TFile.GetCreationTime(sor);
  TFile.SetCreationTime(des, dt);
  dt := TFile.GetCreationTime(des);
  TFile.SetCreationTimeUtc(des, dt);
  dt := TFile.GetLastAccessTime(sor);
  TFile.SetLastAccessTime(des, dt);
  dt := TFile.GetLastWriteTime(sor);
  TFile.SetLastAccessTimeUtc(des, dt);
  dt :=TFile.GetLastWriteTime(sor);
  TFile.SetLastWriteTime(des,dt);
  dt:=TFile.GetLastWriteTimeUtc(sor);
  tfile.SetLastWriteTimeUtc(des,dt);
die gewünschten Angaben anpassen, würde auch unter Android compilierbar sein, aber:

Ich erstelle die Datei Neu.txt im Explorer, deren Anderungsdatum ist heute 14:22 (stimmt), das Erstelldatum aber heute 14:14 ????
Die kopierte Datei hat das Änderungsdatum wie die Originaldatei, als Erstelldatum aber 15:14 (in der Zukunft!)

Ich krieg die Krise!
Warum das denn nun?

Ciao
Stefan
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Exaktes Filecopy für Windows und Android

  Alt 30. Nov 2018, 13:32
Delphi-Quellcode:
  dt := TFile.GetCreationTime(sor);
  TFile.SetCreationTime(des, dt);
  dt := TFile.GetCreationTimeUtc(des);
  TFile.SetCreationTimeUtc(des, dt);

  dt := TFile.GetLastAccessTime(sor);
  TFile.SetLastAccessTime(des, dt);
  dt := TFile.GetLastAccessTimeUtc(sor);
  TFile.SetLastAccessTimeUtc(des, dt);

  dt := TFile.GetLastAccessTime(sor);
  TFile.SetLastAccessTime(des, dt);
  dt := TFile.GetLastAccessTimeUtc(sor);
  TFile.SetLastAccessTimeUtc(des, dt);

  dt :=TFile.GetLastWriteTime(sor);
  TFile.SetLastWriteTime(des,dt);
  dt:=TFile.GetLastWriteTimeUtc(sor);
  tfile.SetLastWriteTimeUtc(des,dt);
im vorigen posting war ein Vertipper per copy/paste, die Datumsangaben sind nun identisch für beide Dateien, unklar ist aber warum die Datei 8 Minuten vor ihrer Erzeugung erstellt wurde!

Ciao
Stefan
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#5

AW: Exaktes Filecopy für Windows und Android

  Alt 30. Nov 2018, 13:34
Schreib dir am besten einen Wrapper für all das oder so. Auf die Existenz der Quelldatei muss geprüft werden sonst kracht es.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Exaktes Filecopy für Windows und Android

  Alt 30. Nov 2018, 19:19
Delphi-Quellcode:

if ( TFile.Exists( Sor ) and TFile.Exists( Des ) ) then
begin
{$IFDEF WINDOWS}
  TFile.SetCreationTime( Des, TFile.GetCreationTime( Sor ) );
  TFile.SetLastAccessTime( Des, TFile.GetLastAccessTime( Sor ) );
  TFile.SetLastWriteTime( Des, TFile.GetLastWriteTime( Sor ) );
{$ELSE WINDOWS}
  TFile.SetCreationTimeUtc( Des, TFile.GetCreationTimeUtc( Sor ) );
  TFile.SetLastAccessTimeUtc( Des, TFile.GetLastAccessTimeUtc( Sor ) );
  TFile.SetLastWriteTimeUtc( Des, TFile.GetLastWriteTimeUtc( Sor ) );
{$ENDIF WINDOWS}
  TFile.SetAttributes( Des, TFile.GetAttributes( Sor ) );
end;
So hier könnte es richtig sein.
Gruß vom KodeZwerg

Geändert von KodeZwerg (30. Nov 2018 um 19:30 Uhr) Grund: bugfixing
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.784 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Exaktes Filecopy für Windows und Android

  Alt 2. Dez 2018, 09:04
.. Du könntest auch die Hashes (md5, sha256,..) der beiden Dateien vergleichen.
Das ist meines Wissens das Datum der Datei unerhebich.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Exaktes Filecopy für Windows und Android

  Alt 2. Dez 2018, 13:02
@Klaus01: es geht ihm aber um "ein Cloudsystem", das vergleicht. Er will nicht selber vergleichen, sondern einen vorhandenen Vergleich positiv erfüllen. Siehe Eingangspost.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Exaktes Filecopy für Windows und Android

  Alt 30. Nov 2018, 13:36
Lass mal unter Windows das ganze UTC gedöns raus. Bei mir klappt es.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz