 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 27.11.2007, 23:32 Titel: Dateidatum lesen und setzen (WinAPI) |
|
|
Code: | 'SetFileDate.bas 27.11.2007 by Volta
'Die FB - Funktion FileDateTime liest das Dateidatum der letzten Aenderung
'Das Prog liest auch das unter Win existierende Erstellungdatum der Datei
'und das Datum des letzten Dateizugriffs.
'Ebenso können auch Datei-datum und -zeit der Erstellung oder Änderung
'neu gesetzt werden. Das Dateizugriffsdatum wird sowieso gesetzt.
'Die Kommentierung habe ich mir ergespart, wer hiermit weiter experimentieren
'will, sollte sich über die verwendeten API-Aufrufe gründlich informieren,
'Datenverluste sind absolut möglich!!
'Benutzung daher auf eigenes Risiko!
#Include Once "windows.bi"
#Include Once "vbcompat.bi" 'file.bi wird mitgeladen
Screen 18,32
Function filehandel( fname As String ) As HANDLE
Dim OFS As OFSTRUCT
OFS.cBytes = Len( OFS )
Function = Cast( HANDLE, OpenFile( fname, @OFS, OF_WRITE ))
End Function
Function FTime2Serial( fTime As FILETIME ) As Double
Dim sTime As SYSTEMTIME
FileTimeToLocalFileTime( @fTime, @fTime )
FileTimeToSystemTime ( @fTime, @sTime )
Function = DateSerial( sTime.wYear, sTime.wMonth, sTime.wDay ) + _
TimeSerial( sTime.wHour, sTime.wMinute, sTime.wSecond )
End Function
Function Serial2FTime( datser As Double ) As FILETIME
Dim As SYSTEMTIME sTime
Dim As FILETIME fTime ,lfTime
sTime.wYear = Year ( datser )
sTime.wMonth = Month ( datser )
sTime.wDay = Day ( datser )
sTime.wHour = Hour ( datser )
sTime.wMinute = Minute( datser )
sTime.wSecond = Second( datser )
SystemTimeToFileTime( @sTime, @fTime )
LocalFileTimeToFileTime( @fTime, @lfTime )
Function = lfTime
End Function
Dim TestFile As String = "test.txt"
Dim FileHdl As HANDLE
Dim As FILETIME cTime, lTime, lwTime
Dim DTformat As String = "dd.mm.yyyy, hh:mm:ss"
Dim Antwort As String
Dim As Double datv
FileHdl = filehandel( TestFile )
If FileHdl > 0 Then
GetFileTime( FileHdl, @cTime, @lTime, @lwTime )
Print "Datei : "; TestFile
Print "Datei erstellt am: "; Format( FTime2Serial( cTime ), DTformat )
Print "letzte Aenderung am: "; Format( FTime2Serial( lwTime), DTformat )
Print "letzter Zugriff am: "; Format( FTime2Serial( lTime ), DTformat )
Print
Print "FB FileDateTime : "; Format( FileDateTime( TestFile ), DTformat )
Print
Input "letzte Dateiaenderung neu setzen (j/n) : ", antwort
If Trim(Left(antwort,1)) = "j" Then
Print
Input "Datum ( dd.mm.yyyy ) : ", antwort
datv = DateValue( antwort )
Input "Zeit ( hh:mm:ss ) : ", antwort
datv += TimeValue( antwort )
Print Format( datv , DTformat )
If datv > 31000 then
lwtime = Serial2FTime( datv )
SetFileTime FileHdl, @cTime, @lTime, @lwTime
Else
?"ungueltiges Datum! < "; Format( 31001, DTformat )
End if
End If
CloseHandle( FileHdl)
Print "Neue FileDateTime : "; Format( FileDateTime( TestFile ), DTformat )
End If
Print "verdisch..."
Sleep |
_________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 06.12.2007, 20:25 Titel: |
|
|
Hi,
das ist sowas von Klasse
Schon lange habe ich vor, meine mp3-Sammlung zu (re)organisieren.
Der Dateiname soll dann aus Künstler - Titel.mp3 gebildet werden.
Damit lassen sich die Dateien alphabetisch ordnen. Ich möchte nun ganz gerne, daß alle zusammen gehörenden Dateien
dieselbe Zeit erhalten, wobei in den Minuten die Track-Nummer steht.
(Damit kann ich dann die Dateien nach Tracks ordnen.)
Der Aufbau der ID3-Tags ist hier ja bestens erklärt
..und um eine Datei komplett einzulesen, finde ich garantiert was auf ytwinky.freebasic.de
Um den Speicher brauche ich mir keine Gedanken mehr zu machen, da mein Celeron-Rechner 1GB hat..
..nur leider muß(te) ich ihn neu einrichten
Aber das ist bald erledigt und dann kann ich das mal probieren..
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|