DirState: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
m (Added category links.) |
m (Updated by user: Instructor (talk, contrib).) |
||
Line 7: | Line 7: | ||
: http://forums.winamp.com/showthread.php?s=&threadid=203228&goto=lastpost | : http://forums.winamp.com/showthread.php?s=&threadid=203228&goto=lastpost | ||
If function used without header | If a function is used without an header, you should put the function below in your script before calling it. | ||
== The Function == | == The Function == | ||
Line 16: | Line 16: | ||
____________________________________________________________________________ | ____________________________________________________________________________ | ||
Check directory full, empty or not exist. | |||
Syntax: | |||
${DirState} "[path]" $var | |||
"[path]" ; Directory | |||
$var ; Result: | |||
; $var=0 (empty) | |||
; $var=1 (full) | |||
; $var=-1 (directory not found) | |||
Example: | Example: | ||
Section | Section | ||
${DirState} "$TEMP" $R0 | |||
; $R0="1" directory is full | |||
SectionEnd*/ | SectionEnd*/ | ||
;--------------------------------------------------------------------------- | ;--------------------------------------------------------------------------- | ||
Function DirState | Function DirState | ||
!define DirState `!insertmacro DirStateCall` | |||
!macro DirStateCall _PATH _RESULT | |||
Push `${_PATH}` | |||
Call DirState | |||
Pop ${_RESULT} | |||
!macroend | |||
Exch $0 | Exch $0 | ||
Push $1 | Push $1 | ||
ClearErrors | |||
FindFirst $1 $0 '$0\*.*' | FindFirst $1 $0 '$0\*.*' |
Revision as of 09:38, 24 June 2005
Author: Instructor (talk, contrib) |
Links
- Latest version of headers "nsh.zip"
- http://forums.winamp.com/showthread.php?s=&threadid=203228&goto=lastpost
If a function is used without an header, you should put the function below in your script before calling it.
The Function
/* ____________________________________________________________________________ DirState ____________________________________________________________________________ Check directory full, empty or not exist. Syntax: ${DirState} "[path]" $var "[path]" ; Directory $var ; Result: ; $var=0 (empty) ; $var=1 (full) ; $var=-1 (directory not found) Example: Section ${DirState} "$TEMP" $R0 ; $R0="1" directory is full SectionEnd*/ ;--------------------------------------------------------------------------- Function DirState !define DirState `!insertmacro DirStateCall` !macro DirStateCall _PATH _RESULT Push `${_PATH}` Call DirState Pop ${_RESULT} !macroend Exch $0 Push $1 ClearErrors FindFirst $1 $0 '$0\*.*' IfErrors 0 +3 StrCpy $0 -1 goto end StrCmp $0 '.' 0 +4 FindNext $1 $0 StrCmp $0 '..' 0 +2 FindNext $1 $0 FindClose $1 IfErrors 0 +3 StrCpy $0 0 goto end StrCpy $0 1 end: Pop $1 Exch $0 FunctionEnd