docs4you's picture
Upload 487 files
27867f1 verified
Name "Inetc Recursive Dir Upload Test"
OutFile "recursive.exe"
RequestExecutionLevel user
!include "MUI2.nsh"
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
!include "FileFunc.nsh"
!insertmacro GetFileAttributes
var url
var path
Function dirul
Push $0 ; search handle
Push $1 ; file name
Push $2 ; attributes
FindFirst $0 $1 "$path\*"
loop:
StrCmp $1 "" done
${GetFileAttributes} "$path\$1" DIRECTORY $2
IntCmp $2 1 isdir
retry:
Inetc::put $url/$1 "$path\$1" /end
Pop $2
DetailPrint "$2 $path\$1"
StrCmp $2 "OK" cont
MessageBox MB_YESNO "$path\$1 file upload failed. Retry?" IDYES retry
Abort "terminated by user"
Goto cont
isdir:
StrCmp $1 . cont
StrCmp $1 .. cont
Push $path
Push $url
StrCpy $path "$path\$1"
StrCpy $url "$url/$1"
Call dirul
Pop $url
Pop $path
cont:
FindNext $0 $1
Goto loop
done:
FindClose $0
Pop $2
Pop $1
Pop $0
FunctionEnd
Section "Dummy Section" SecDummy
SetDetailsView hide
StrCpy $path "$EXEDIR"
; put is dir in the user's ftp home, use //put for root-relative path
StrCpy $url ftp://takhir:pwd@localhost/put
Call dirul
SetDetailsView show
SectionEnd