![]() |
Erstellt (am) einer Datei ändern
Hi!
Habe folgendes Problem: Mein MP3-Stick "ordnet" die Lieder nach dem Erstellungsdatum. Wenn ich jetzt die Reihenfolge festlegen will, dann möchte ich natürlich nicht alles löschen und in der gewünschten Reihenfolge wieder draufkopieren. Also wollte ich jetzt nen MP3-Stick-Manager programmieren, der das Erstellungsdatum der MP3-Dateien entsprechend ändert... Leider hab ich aber keine Ahnung, wie ich das Datum ändern kann. Hoffe ihr könnt mir weiterhelfen! (Habe die Suche benutzt aber leider nichts Passendes gefunden) :hi: Bernhard |
Re: Erstellt (am) einer Datei ändern
Aber Google hast du nicht benutzt, oder?
[google]Delphi Datum einer Datei ändern[/google] Da findet man z.B. das hier: ![]() Tubos |
Re: Erstellt (am) einer Datei ändern
|
Re: Erstellt (am) einer Datei ändern
|
Re: Erstellt (am) einer Datei ändern
Im Dateisystem.
|
Re: Erstellt (am) einer Datei ändern
Vielen Dank für eure Antworten! Das war genau das was ich gesucht hab! :-D
(!!! DP4EVER !!!) |
Re: Erstellt (am) einer Datei ändern
Zitat:
![]() |
Re: Erstellt (am) einer Datei ändern
Wenn du das Dateisystem kennst...
|
Re: Erstellt (am) einer Datei ändern
|
Re: Erstellt (am) einer Datei ändern
Moin Scrapt,
da verwechselst Du jetzt Dateisystem und Bootsektor. |
Re: Erstellt (am) einer Datei ändern
Wo ist dann das Dateisystem? (Soll ich dazu einen neuen Thread eröffnen?) Das Datum wird doch wohl kaum in der Datei gespeichert, oder?
![]() |
Re: Erstellt (am) einer Datei ändern
Moin Scrapt,
da das Thema als solches schon recht komplex ist, und somit die Diskussion umfangreicher ausfallen könnte, wäre ein neuer Thread wohl wirklich besser. |
Re: Erstellt (am) einer Datei ändern
So, jetzt hab ich leider nochmal ein Problem...
Das ändern des Datums einer Datei auf der Festplatte geht zwar jetzt ohne Probleme, aber das ändern auf meinem MP3-(USB)-Stick leider nicht. :( Die Funktion gibt immer false zurück (==> nicht erfolgreich). Lesen klappt aber ohne Probleme. Ich habe den Code von Tubos genommen ( ![]() Hoffe, ihr könnt mir auch bei diesem Problem weiterhelfen... Danke im Vorraus Bernhard PS: Evtl. liegt es daran, dass der Code die Funktion "SetFileTime" von der unit Windows benutzt. [edit]Benutze WinXP (NTFS) und der Stick ist FAT[/edit] |
Re: Erstellt (am) einer Datei ändern
Kann mir denn keiner helfen? :pale:
|
Re: Erstellt (am) einer Datei ändern
Meine bescheidenen aber vieleicht nicht korrekten Vermutungen:
![]() |
Re: Erstellt (am) einer Datei ändern
Hi, ich bin’s noch mal.
Hab jetzt bisschen was geändert und herausgefunden, dass er den Pfad nicht gemocht hat. Hab den jetzt geändert und jetzt geht es wieder. Habe den Fehler am Anfang nicht bemerkt gehabt weil es beim Laden keine Probleme gab. Danke noch mal für eure Hilfe! :thumb: |
Re: Erstellt (am) einer Datei ändern
hallo hab den beitrag von delphi-source.de gelesen und hätte da eine frage,
wie rufe ich diese funktion auf die die dateieigenschaften ändern soll ? In folgender Prozedur wird dargestellt, wie diese drei Daten eines Ordners oder einer Datei auch geändert werden können
Code:
function ChangeFileDate(const path: string; const Creation, LastAccess,
LastWrite: TDateTime): Boolean; var hFile: THandle; ftCreationUTC, ftLastAccessUTC, ftLastWriteUTC: TFileTime; ftCreationLocal, ftLastAccessLocal, ftLastWriteLocal: TFileTime; stCreationLocal, stLastAccessLocal, stLastWriteLocal: TSystemTime; begin result := false; hFile := CreateFile(PChar(path), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0); if (hFile <> INVALID_HANDLE_VALUE) then try //Umwandlung von TDateTime in Systemzeitformat DateTimeToSystemTime(Creation, stCreationLocal); DateTimeToSystemTime(LastAccess, stLastAccessLocal); DateTimeToSystemTime(LastWrite, stLastWriteLocal); //Umwandlung von Systemzeitformat in lokales Dateizeitformat if (SystemTimeToFileTime(stCreationLocal, ftCreationLocal)) and (SystemTimeToFileTime(stLastAccessLocal, ftLastAccessLocal)) and (SystemTimeToFileTime(stLastWriteLocal, ftLastWriteLocal)) then begin //Umwandlung von lokalem Dateizeitformat in Weltzeit if (LocalFileTimeToFileTime(ftCreationLocal, ftCreationUTC)) and (LocalFileTimeToFileTime(ftLastAccessLocal, ftLastAccessUTC)) and (LocalFileTimeToFileTime(ftLastWriteLocal, ftLastWriteUTC)) then begin result:=SetFileTime(hFile, @ftCreationUTC, @ftLastAccessUTC, @ftLastWriteUTC); end; end; finally CloseHandle(hFile); end; end; mfg vader |
Re: Erstellt (am) einer Datei ändern
Schau dir doch die Deklaration der Funktion an:
Code:
Also z.B. so:
function ChangeFileDate(const path: string; const Creation, LastAccess,
LastWrite: TDateTime): Boolean;
Code:
Bernhard :hi:
procedure TForm1.Button1Click(Sender: TObject);
var erstellung, zugriff, schreibzugriff: TDateTime; begin erstellung := StrToDateTime('01.01.2004 12:00'); zugriff := StrToDateTime('01.01.2004 12:00'); schreibzugriff := StrToDateTime('01.01.2004 12:00'); ChangeFileDate('c:\temp\test.bmp', erstellung, zugriff, schreibzugriff); end; |
Re: Erstellt (am) einer Datei ändern
hallo bernhard,
herzlichen dank,so funzt es :lol: mfg vader |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 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