DirState: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
m (Updated by user: Instructor (talk, contrib).)
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{|align=right
{{PageAuthor|Instructor}}
|<small>Author: [[{{ns:2}}:Instructor|Instructor]] ([[{{ns:3}}:Instructor|talk]], [[{{ns:-1}}:Contributions/Instructor|contrib]])</small>
|}
<br style="clear:both;">
== 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.
{{User:Instructor/Headers/Template}}


== The Function ==
== Function Description ==
<highlight-nsis>/*
 
<highlight-nsis>
____________________________________________________________________________
____________________________________________________________________________


Line 28: Line 23:
               ;    $var=1  (full)
               ;    $var=1  (full)
               ;    $var=-1 (directory not found)
               ;    $var=-1 (directory not found)
</highlight-nsis>




Example:
<b>Example:</b>
Section
<highlight-nsis>Section
${DirState} "$TEMP" $R0
${DirState} "$TEMP" $R0
; $R0="1"  directory is full
; $R0="1"  directory is full
SectionEnd*/
SectionEnd
 
</highlight-nsis>


;---------------------------------------------------------------------------
== Function Code ==


<highlight-nsis>
Function DirState
Function DirState
!define DirState `!insertmacro DirStateCall`
!define DirState `!insertmacro DirStateCall`
Line 72: Line 69:
</highlight-nsis>
</highlight-nsis>


[[{{ns:14}}:Disk, Path & File Functions]]
[[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