Get the Root Directory: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
m (Wikipedia python library)
 
m (Updated author and download links, and changed format of some pages.)
Line 50: Line 50:
FunctionEnd</highlight-nsis>
FunctionEnd</highlight-nsis>


Page author: KiCHiK
Page author: [[User:KiCHiK|KiCHiK]]

Revision as of 12:36, 23 April 2005

Description

This function will return the root directory of a given path. It only accepts full paths. If you need to convert a relative path to a full path you can use GetFullPathName.

Examples

Push "C:\Program Files\NSIS\"
Call GetRoot
Pop $0
DetailPrint "$0 should be C:"
 
Push "\\SuperPimp\NSIS\Source\exehead\Ui.c"
Call GetRoot
Pop $0
DetailPrint "$0 should be \\SuperPimp\NSIS"

The function:

Function GetRoot
  Exch $0
  Push $1
  Push $2
  Push $3
  Push $4
 
  StrCpy $1 $0 2
  StrCmp $1 "\\" UNC
    StrCpy $0 $1
    Goto done
 
UNC:
  StrCpy $2 3
  StrLen $3 $0
  loop:
    IntCmp $2 $3 "" "" loopend
    StrCpy $1 $0 1 $2
    IntOp $2 $2 + 1
    StrCmp $1 "\" loopend loop
  loopend:
    StrCmp $4 "1" +3
      StrCpy $4 1
      Goto loop
    IntOp $2 $2 - 1
    StrCpy $0 $0 $2
 
done:
  Pop $4
  Pop $3
  Pop $2
  Pop $1
  Exch $0
FunctionEnd

Page author: KiCHiK