DirState

From NSIS Wiki
Jump to navigationJump to search
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