File Modified Date and Time: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
m (Adding new author and category links.) |
m (Corrected link to System plug-in.) |
||
Line 3: | Line 3: | ||
== Description == | == Description == | ||
<b>Superseded by:</b> [[GetTime]] | <b>Superseded by:</b> [[GetTime|GetTime function]].<br> | ||
<b>Required:</b> [[System]] | <b>Required:</b> [[System plug-in]]. | ||
This function returns a file or folder modified date and time. | This function returns a file or folder modified date and time. |
Latest revision as of 06:05, 3 December 2005
Author: deguix (talk, contrib) |
Description
Superseded by: GetTime function.
Required: System plug-in.
This function returns a file or folder modified date and time.
Function call:
Push "[path/]file.ext" ;File or folder Call FileModifiedDate Pop "$var1" ;Variable (for year) Pop "$var2" ;Variable (for month) Pop "$var3" ;Variable (for day) Pop "$var4" ;Variable (for day of week name) Pop "$var5" ;Variable (for hour) Pop "$var6" ;Variable (for minute) Pop "$var7" ;Variable (for seconds)
The function:
;---------------------------------------------------------------------------- ; Superseded by : GetTime function. ;---------------------------------------------------------------------------- ; Title : File modified date and time ; Short Name : FileModifiedDate ; Last Changed : 21/Feb/2005 ; Code Type : Function ; Code Sub-Type : Normal ;---------------------------------------------------------------------------- ; Required : System plugin. ; Description : Returns a file or folder modified date and time. ;---------------------------------------------------------------------------- ; Function Call : Push "[path/]file.ext" ; File or folder to get modified date and time. ; ; Call FileModifiedDate ; ; Pop "$Variable1" ; Year. ; ; Pop "$Variable2" ; Month. ; ; Pop "$Variable3" ; Day. ; ; Pop "$Variable4" ; Day of the week name. ; ; Pop "$Variable5" ; Hour. ; ; Pop "$Variable6" ; Minute. ; ; Pop "$Variable7" ; Second. ;---------------------------------------------------------------------------- ; Author : Diego Pedroso ; Author Reg. Name : deguix ;---------------------------------------------------------------------------- Function FileModifiedDate # Prepare variables Exch $0 Push $1 Push $2 Push $3 Push $4 Push $5 Push $6 Push $7 Push $R0 # Original System Example (with no dependencies) ; create WIN32_FIND_DATA struct System::Call '*(i, l, l, l, i, i, i, i, &t260, &t14) i .r2' ; Find file info System::Call 'kernel32::FindFirstFileA(t, i) i(r0, r2) .r3' ; ok? IntCmp $3 -1 sgfst_exit ; close file search System::Call 'kernel32::FindClose(i) i(r3)' ; Create systemtime struct for local time System::Call '*(&i2, &i2, &i2, &i2, &i2, &i2, &i2, &i2) i .R0' ; Get File time System::Call '*$2(i, l, l, l, i, i, i, i, &t260, &t14) i (,,, .r3)' ; Convert file time (UTC) to local file time System::Call 'kernel32::FileTimeToLocalFileTime(*l, *l) i(r3, .r1)' ; Convert file time to system time System::Call 'kernel32::FileTimeToSystemTime(*l, i) i(r1, R0)' sgfst_exit: System::Call '*$R0(&i2, &i2, &i2, &i2, &i2, &i2, &i2, &i2)i \ (.r4, .r5, .r3, .r6, .r2, .r1, .r0,)' # Day of week: convert to name StrCmp $3 0 0 +3 StrCpy $3 Sunday Goto WeekNameEnd StrCmp $3 1 0 +3 StrCpy $3 Monday Goto WeekNameEnd StrCmp $3 2 0 +3 StrCpy $3 Tuesday Goto WeekNameEnd StrCmp $3 3 0 +3 StrCpy $3 Wednesday Goto WeekNameEnd StrCmp $3 4 0 +3 StrCpy $3 Thursday Goto WeekNameEnd StrCmp $3 5 0 +3 StrCpy $3 Friday Goto WeekNameEnd StrCmp $3 6 0 +2 StrCpy $3 Saturday WeekNameEnd: # Minute: convert to 2 digits format IntCmp $1 9 0 0 +2 StrCpy $1 '0$1' # Second: convert to 2 digits format IntCmp $0 9 0 0 +2 StrCpy $0 '0$0' # Return to user Pop $R0 Exch $6 Exch Exch $5 Exch Exch 2 Exch $4 Exch 2 Exch 3 Exch $3 Exch 3 Exch 4 Exch $2 Exch 4 Exch 5 Exch $1 Exch 5 Exch 6 Exch $0 Exch 6 FunctionEnd