willst Du hier SPAM-König werden?Agent hat geschrieben:Übrigens PB 4.2 Beta 2
Es gibt einen EDIT-Button!
Und? Haste es nochmal probiert. Im Explodierer siehste ja nur ein Datum, DuAgent hat geschrieben:Übrigens PB 4.2 Beta 2
Code: Alles auswählen
Procedure FileTimeToDate(*FT.FILETIME); - Convert API-Time-Format to PB-Date()
FileTimeToLocalFileTime_(*FT.FILETIME,FT2.FILETIME)
FileTimeToSystemTime_(FT2,st.SYSTEMTIME)
ProcedureReturn Date(st\wYear,st\wMonth,st\wDay,st\wHour,st\wMinute,st\wSecond)
EndProcedure
Procedure DateToFileTime(Date,*FT.FILETIME); - Convert PB-Date() to API-Time-Format
st.SYSTEMTIME
st\wYear=Year(Date)
st\wMonth=Month(Date)
st\wDayOfWeek=DayOfWeek(Date)
st\wDay=Day(Date)
st\wHour=Hour(Date)
st\wMinute=Minute(Date)
st\wSecond=Second(Date)
SystemTimeToFileTime_(st,FT2.FILETIME)
LocalFileTimeToFileTime_(FT2,*FT)
EndProcedure
ProcedureDLL DirGetTime(File.s,Which); - Get the time of a File
; Wich specify wich time
; 0 = Time the File was created
; 1 = Time the file was last accessed
; 2 = Time the file was last written
; return 0 if fail / Date in Purebasic format if success
Result=0
;handle=CreateFile_(@File,#GENERIC_READ,#FILE_SHARE_READ|#FILE_SHARE_WRITE,0,#OPEN_EXISTING,#FILE_ATTRIBUTE_NORMAL,0)
handle= CreateFile_(File, #GENERIC_WRITE | #GENERIC_READ ,#FILE_SHARE_READ, #Null, #OPEN_EXISTING, #FILE_FLAG_BACKUP_SEMANTICS, #Null)
If handle<>#INVALID_HANDLE_VALUE
Select Which
Case 1
GetFileTime_(handle,0,FT.FILETIME,0)
Case 2
GetFileTime_(handle,0,0,FT.FILETIME)
Default
GetFileTime_(handle,FT.FILETIME,0,0)
EndSelect
Result=FileTimeToDate(FT)
CloseHandle_(handle)
EndIf
ProcedureReturn Result
EndProcedure
ProcedureDLL DirSetTime(File.s,Date,Which); - Set the time of a File
; Return 1 If succes / 0 If fail
; Which specify wich time
; 0 = Time the File was created
; 1 = Time the file was last accessed
; 2 = Time the file was last written
;handle=CreateFile_(@File,#GENERIC_WRITE,#FILE_SHARE_READ|#FILE_SHARE_WRITE,0,#OPEN_EXISTING,#FILE_ATTRIBUTE_NORMAL,0)
handle= CreateFile_(File, #GENERIC_WRITE | #GENERIC_READ ,#FILE_SHARE_READ, #Null, #OPEN_EXISTING, #FILE_FLAG_BACKUP_SEMANTICS, #Null)
If handle<>#INVALID_HANDLE_VALUE
DateToFileTime(Date,FT.FILETIME)
Select Which
Case 1
retour=SetFileTime_(handle,0,FT.FILETIME,0)
Case 2
retour=SetFileTime_(handle,0,0,FT.FILETIME)
Default
retour=SetFileTime_(handle,FT.FILETIME,0,0)
EndSelect
CloseHandle_(handle)
EndIf
If retour<>0 : retour=1 : EndIf
ProcedureReturn retour
EndProcedure
File.s="c:\Temp"
;CreateFile(0,File)
;CloseFile(0)
FileTime=DirGetTime(File,0)
Debug "Creation " + FormatDate("%dd:%mm:%yy %hh:%ii:%ss",FileTime)
FileTime=DirGetTime(File,1)
Debug "Last Access " + FormatDate("%dd:%mm:%yy %hh:%ii:%ss",FileTime)
FileTime=DirGetTime(File,2)
Debug "Last Written " + FormatDate("%dd:%mm:%yy %hh:%ii:%ss",FileTime)
DateCreated=ParseDate("%dd:%mm:%yy %hh:%ii:%ss","01:01:05 00:00:00")
DateLastAccessed=ParseDate("%dd:%mm:%yy %hh:%ii:%ss","01:01:05 00:01:00")
DateLastWritten=ParseDate("%dd:%mm:%yy %hh:%ii:%ss","01:01:05 00:02:00")
;
;
DirSetTime(File,DateCreated,0)
DirSetTime(File,DateLastAccessed,1)
DirSetTime(File,DateLastWritten,2)
in der tat ich habe hier etwas von netmaestro gefunden....ts-soft hat geschrieben:Der Riesencode ist doch überflüssig, PB kanns doch von Hause aus, auch
wenns nicht in der Hilfe steht
ts-soft, hast Du deine Behauptung eigentlich einmal ausprobiert?ts-soft hat geschrieben:Der Riesencode ist doch überflüssig, PB kanns doch von Hause aus, auch wenns nicht in der Hilfe steht
Code: Alles auswählen
If ExamineDirectory(0, "C:\Test", "") <> 0
FinishDirectory(0)
Else
If CreateDirectory("C:\Test")
Info.S = "Das Verzeichnis C:\Test wurde gerade neu angelegt!" + #CR$ + #CR$
Info + "Erstanlage-Datum = " + FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss", GetFileDate("C:\Test", #PB_Date_Created)) + #CR$
Info + "Änderungs-Datum = " + FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss", GetFileDate("C:\Test", #PB_Date_Modified)) + #CR$
Info + "Letztes Zugriffs-Datum = " + FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss", GetFileDate("C:\Test", #PB_Date_Accessed)) + #CR$
MessageRequester("Info", Info)
EndIf
EndIf
SetFileDate("C:\Test", #PB_Date_Modified, ParseDate("%dd.%mm.%yyyy %hh:%ii:%ss", "01.01.2008 00:00:00"))
Info = "Das Erstanlage-Datum für das Verzeichnis C:\Test wurde abgeändert!" + #CR$ + #CR$
Info + "Erstanlage-Datum = " + FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss", GetFileDate("C:\Test", #PB_Date_Created)) + #CR$
Info + "Änderungs-Datum = " + FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss", GetFileDate("C:\Test", #PB_Date_Modified)) + #CR$
Info + "Letztes Zugriffs-Datum = " + FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss", GetFileDate("C:\Test", #PB_Date_Accessed)) + #CR$
MessageRequester("Info", Info)
Er verweist gleichzeitig auf sein API-Beispiel, das auch jpd angeführt hat und das tatsächlich tadellos funktioniert:netmaestro hat geschrieben:PureBasic's SetFileDate command works with files but not with folders. This is due to the fact that the SetFileDate_() API needs a valid folder handle to set the creation date and a string isn't going to cut it.
Code: Alles auswählen
dir$= "C:\_ordnerdatum"
If Not CreateDirectory(dir$)
Debug "no create"
EndIf
If SetFileDate(dir$, #PB_Date_Created, ParseDate("%dd.%mm.%yyyy", "01.01.2006"))
Debug FormatDate("%dd.%mm.%yyyy", GetFileDate(dir$, #PB_Date_Created))
Else
Debug "no set"
EndIf
Debug "done"
Weißt Du vielleicht noch die Version? Die 3.9x-Version kann es nicht gewesen sein, weil es damals die SetFileDate()-Funktion noch nicht gab...ts-soft hat geschrieben:Scheint nicht mehr zu gehen, komisch.
[OT]ts-soft hat geschrieben:Naja hab lange nix mehr gemacht