AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TWin32FindData: Dateigröße bestimmen

Ein Thema von Jim Carrey · begonnen am 4. Okt 2016 · letzter Beitrag vom 17. Apr 2020
Antwort Antwort
Seite 2 von 2     12   
itsme

Registriert seit: 3. Aug 2006
32 Beiträge
 
Delphi XE Architect
 
#11

AW: TWin32FindData: Dateigröße bestimmen

  Alt 14. Apr 2020, 14:01
Hallo zusammen,

ich erlaube mir mal, den alten thread, nochmals in den Vordergrund zu holen.
TWin32FindData benutze ich um z.B. an Datum und Uhrzeit von Ordnern und Dateien zu kommen.
Funktioniert auch alles super, aber nicht auf einem x64 System, da stimmen Datum und Uhrzeit z. B. nicht!
Habe schon in die Hilfe geschaut und gegoogelt, konnte aber nicht finden wie man das von einem x86 Programm (Delphi XE) hin bekommt, damit auch x64 Daten korrekt erkannt werden.

Es wäre nett wenn jemand mir da einmal mit Rat zur Seite stehen könnte...

Danke und gleichzeitig wünsche ich euch allen nachträglich noch halbwegs schöne Ostern gehabt zu haben.
  Mit Zitat antworten Zitat
DieDolly

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

AW: TWin32FindData: Dateigröße bestimmen

  Alt 14. Apr 2020, 14:27
Versuch mal TDirectory.GetLastWriteTime(), TDirectory.GetLastAccessTime() und .GetCreationTime() für Verzeichnisse.
Dasselbe mit TFile für Dateien.
  Mit Zitat antworten Zitat
itsme

Registriert seit: 3. Aug 2006
32 Beiträge
 
Delphi XE Architect
 
#13

AW: TWin32FindData: Dateigröße bestimmen

  Alt 14. Apr 2020, 15:24
Vielen Dank, hat auf Anhieb super geklappt...

Hätte ich auch selbst darauf kommen können, hatte allerdings nicht in Erwägung gezogen, dass die Klassen so unterschiedlich agieren und rechnen.
Dachte Datum ist Datum und Uhrzeit ist Uhrzeit, so kann man daneben liegen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#14

AW: TWin32FindData: Dateigröße bestimmen

  Alt 14. Apr 2020, 19:43
Auch wenn Itsme jetzt geholfen ist, hätte ich aus purer Neugier gewusst, wie man das Problem mit der API Funktion TWin32FindData löst bzw. Warum es nicht funktioniert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#15

AW: TWin32FindData: Dateigröße bestimmen

  Alt 14. Apr 2020, 21:57
Ich hatte erst an den VirtualStore gedacht, aber dann wäre eher in 32 Bit der Fehler mit dem falschen Datum zu vermuten, wenn dort eine "andere" Datei nach der Redirection erwischt wird.
Außer der TE hatte schon das Problem und bekommt nun das "richtige" Datum,
aber wir wissen ja nicht was es für Dateien sind, bzw. wo sie liegen.
$2B or not $2B

Geändert von himitsu (14. Apr 2020 um 21:59 Uhr)
  Mit Zitat antworten Zitat
itsme

Registriert seit: 3. Aug 2006
32 Beiträge
 
Delphi XE Architect
 
#16

AW: TWin32FindData: Dateigröße bestimmen

  Alt 15. Apr 2020, 11:28
Also ich hatte zunächst zum testen die Daten von LW:\Windows genommen, dieses Verzeichnis hat jeder, somit kann man gut vergleichen

Ich habe ein Win 7 32Bit auf separater Platte => K:\Windows
14.07.2009 02:37 wird über TWin32FindData korrekt gelesen

Zum Vergleich habe ich ein Win 8 64Bit auf anderer Platte => C:\Windows
22.08.2013 15:36
26.07.2012 05:37 wird aber über TWin32FindData ermittelt

Das ist so unterschiedlich, dass ich auch keine Erklärung dafür habe und nicht an TDirectory oder TFile gedacht hatte.
Datum sollte Datum und Uhrzeit Uhrzeit sein, ist aber wohl nicht so...
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#17

AW: TWin32FindData: Dateigröße bestimmen

  Alt 15. Apr 2020, 19:08
Hast du mit deinem 32-bit Delphi-Programm irgendwelche Dateien in Unterverzeichnissen Windows\system32 getestet? Wenn ja, dann funkt die File-system redirection dazwischen und nach Windows\SysWOW64 umleitet.

Mit TWin32FindData hab ich bisher jedenfalls kein Problem gehabt.

Grüße
Dalai
  Mit Zitat antworten Zitat
itsme

Registriert seit: 3. Aug 2006
32 Beiträge
 
Delphi XE Architect
 
#18

AW: TWin32FindData: Dateigröße bestimmen

  Alt 16. Apr 2020, 13:23
Nein ich hatte nicht weiter getestet, sondern gleich umprogrammiert, habe das aber nachgeholt.
In der Tat ist es so das z.B. notepad.exe oder C:\ProgramData korrekt angezeigt werden.
Hingegen C:\Windows, C:\Windows\SysWOW64 oder C:\Benutzer nicht.

Es mag so sein wie du vermutet hast, allerdings muss ich jetzt nicht auf Biegen und Brechen herausfinden, warum das so ist.

Ich habe das Testprojekt mit TWin32Finddata jetzt aber gelöscht und kann keine weiteren Versuche mehr starten.
Wir wissen jetzt, dass es bei speziellen Ordnern so ist und können uns darauf einstellen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#19

AW: TWin32FindData: Dateigröße bestimmen

  Alt 16. Apr 2020, 15:17
Hast du wirklich "C:\Benutzer" verwendet?

Hier wirs du viel Spaß haben,
denn C:\Users ist der richtige Name, dafür wurde eine Übersetzung definiert, damit der Explorer und die Speichen-/Öffnen-Dialoge es lokalisiert anzeigen,
und zusätzlich gibt es noch einen unsichtbaren Link, der Benutzer heißt und auf Users zeigt, für die, welche das eingeben, was der Explorer anzeigt.

Tja, und nun kommt der Spaß, denn da du hier den Link nicht auflöst, bekommst du das Datum des Links, anstatt des Ziels,
und scheinbar hat Windows hier teilweise eine automatische Auflösung drin, jenachdem ob die Dateisystemvirtualisierung des Programms aktiv ist. (für 32 Bit Programme in windows 64, wenn das Programm nicht als "aktuell" gekennzeichnet ist)

Der Explorer zeigt das Sichtbare an, aber übersetzt die Anzeige,
und APIs oder die Console verwenden die originalen Namen, auch von dem Unsichtbaren.
$2B or not $2B

Geändert von himitsu (16. Apr 2020 um 15:20 Uhr)
  Mit Zitat antworten Zitat
itsme

Registriert seit: 3. Aug 2006
32 Beiträge
 
Delphi XE Architect
 
#20

AW: TWin32FindData: Dateigröße bestimmen

  Alt 17. Apr 2020, 13:13
Ich habe sowohl C:\Users, als auch C:\Benutzer getestet...
Beides ging aber nicht.
Da ich vorher noch nicht mit TWin32FindData gearbeitet hatte, dachte ich, nimm mal zu Testzwecken C:\Windows, hat schließlich jeder.
Und alles andere hatte ich nur auf Frage von Dalai ausprobiert.

Habe natürlich mit meiner Wahl voll daneben gegriffen, aber wer konnte das ahnen.
Ist ja auch nur ein wenig Hobby-Programmieren und was ich machen wollte, habe ich letztendlich hin bekommen und wieder ein wenig hinzugelernt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 18:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz