DirState: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
m (Updated author and download links, and changed format of some pages.) |
|||
(7 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{PageAuthor|Instructor}} | |||
{{User:Instructor/Headers/Template}} | |||
== | == Function Description == | ||
<highlight-nsis> | |||
<highlight-nsis> | |||
____________________________________________________________________________ | ____________________________________________________________________________ | ||
DirState | DirState | ||
____________________________________________________________________________ | ____________________________________________________________________________ | ||
Check directory full or | Check directory full, empty or not exist. | ||
Syntax: | Syntax: | ||
${DirState} "[path]" $var | |||
"[path]" ; Directory | |||
$var ; Result: | |||
; $var=0 (empty) | |||
; $var=1 (full) | |||
; $var=-1 (directory not found) | |||
</highlight-nsis> | |||
<b>Example:</b> | |||
<highlight-nsis>Section | |||
${DirState} "$TEMP" $R0 | |||
; $R0="1" directory is full | |||
SectionEnd | |||
</highlight-nsis> | |||
== Function Code == | |||
<highlight-nsis> | |||
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\*.*' | ||
Line 61: | Line 69: | ||
</highlight-nsis> | </highlight-nsis> | ||
[[Category:Disk, Path & File Functions]] |
Latest revision as of 10:38, 26 April 2011
Author: Instructor (talk, contrib) |
Page for NSIS 2.07 and below users
You can use the latest version of headers (recommended) or the following function code (put the function code in your script before calling it)
Function Description
____________________________________________________________________________ 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 Code
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