Get extention of file

From NSIS Wiki

Author: opher (talk, contrib)


[edit] Description

This is based on the work of Afrow UK. This more accuretly reports the extention: For path "C:\some dir\some file with no extention"

 Afrow UK's implementation will return the original string as "extention"

For path "C:\Installation.CD\some file with no extention"

 Afrow UK's implementation will return "CD\some file with no extention" as extention.

In both cases this function will return "" (empty) as extention.

[edit] Usage

  Push "C:\some path\filename.extention"
  Call GetFileExt
  Pop $R0             ; $R0 = "extention"

[edit] The Function

Function GetFileExt
  Exch $0 ; input string
  Push $1
  Push $2
  StrCpy $1 0
  loop:
    IntOp $1 $1 - 1
    StrCpy $2 $0 1 $1
    StrCmp $2 "" empty
    StrCmp $2 "\" empty
    StrCmp $2 "." found
    Goto loop
  empty:
    StrCpy $0 ""
    goto exit
  found:
    IntOp $1 $1 + 1
    StrCpy $0 $0 "" $1
  exit:
    Pop $2
    Pop $1
    Exch $0
FunctionEnd
donate
ads