moin moin
ich habe folgendes problem:
ich hab nen ftp server und mir ein script gebastelt, womit ich daten richtig hochladen kann und runterladen, aber nur in bestimmte ordner.
der ordner wird in einem treeview fenster angezeigt und kann auch ausgewählt werden.
das funktioniert auch, und er connected auch, nur lädt er nichts hoch und runterladen tut es auch nichts.
hier die func aus dem script:
download
#Include <GuiTreeView.au3>
#Include <FTPEx.au3>
Global $ip = @IPAddress1, $loginname = "ordner"
GUICreate("test", 300, 500)
$scripttree = GUICtrlCreateTreeView(0, 0, 300, 450)
$scriptfiles = GUICtrlCreateTreeViewItem("scriptfiles", $scripttree)
$unterordner = GUICtrlCreateTreeViewItem("ordner",$scriptfiles)
GUICtrlCreateTreeViewItem("testfile1.txt", $unterordner)
GUICtrlCreateTreeViewItem("testfile2.txt", $unterordner)
GUICtrlCreateTreeViewItem("testfile3.txt", $unterordner)
GUICtrlCreateTreeViewItem("testfile0.txt", $scriptfiles)
$button = GUICtrlCreateButton("Download", 10, 450)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Switch $msg
Case $button
$hSelect = _GUICtrlTreeView_GetSelection($scripttree)
$sSelectText = _GUICtrlTreeView_GetText($scripttree, $hSelect)
$sParentText = _GUICtrlTreeView_GetText($scripttree, _GUICtrlTreeView_GetParentHandle($scripttree, $hSelect))
If $sParentText = "filterscripts" Or $sParentText = "scriptfiles" Or $sParentText = "gamemodes" Then
If _GUICtrlTreeView_GetChildCount($scripttree, $hSelect) = 0 Then
$open = _FTP_Open("samp")
$ftpconnect = _FTP_Connect($open, $ip, "xxx", "xxx", 1, 509)
Sleep(100)
_FTP_DirSetCurrent($ftpconnect, $loginname & "/" & $sParentText)
Sleep(100)
_FTP_ProgressDownload($ftpconnect, @DesktopDir & "/" & $sSelectText, $sSelectText)
_FTP_Close($open)
Else
$open = _FTP_Open("samp")
$ftpconnect = _FTP_Connect($open, $ip, "xxx", "xxx", 1, 509)
_FTP_DirSetCurrent($ftpconnect, $loginname & "/" & $sParentText & "/" & $sSelectText)
DirCreate(@DesktopDir & $sSelectText)
$list = _Ftp_ListToArray($ftpconnect, 2)
For $i = 1 To $list[0]
_FTP_ProgressDownload($ftpconnect, @DesktopDir & "/" & $sSelectText & "/" & $list[$i], $list[$i])
Next
_FTP_Close($open)
EndIf
Else
$sParentText2 = _GUICtrlTreeView_GetParentHandle($scripttree, $sParentText)
$open = _FTP_Open("samp")
$ftpconnect = _FTP_Connect($open, $ip, "xxx", "xxx", 1, 509)
_FTP_DirSetCurrent($ftpconnect, $loginname & "/" & $sParentText2 & "/" & $sParentText)
_FTP_ProgressDownload($ftpconnect, @DesktopDir & "/" & $sSelectText, $sSelectText)
_FTP_Close($open)
EndIf
Case -3
Exit
EndSwitch
WEnd
upload
#Include <GuiTreeView.au3>
#Include <FTPEx.au3>
#Include <File.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $maxordner = 20
Global $scriptfilesitem[$maxordner][2],$loginname = "testordner",$ip = @IPAddress1
$test = GUICreate("test", 300, 500)
$scripttree = GUICtrlCreateTreeView(0, 0, 300, 450)
$scriptfiles = GUICtrlCreateTreeViewItem("scriptfiles", $scripttree)
$unterordner = GUICtrlCreateTreeViewItem("ordner",$scriptfiles)
GUICtrlCreateTreeViewItem("testfile1.txt", $unterordner)
GUICtrlCreateTreeViewItem("testfile2.txt", $unterordner)
GUICtrlCreateTreeViewItem("testfile3.txt", $unterordner)
GUICtrlCreateTreeViewItem("testfile0.txt", $scriptfiles)
$button = GUICtrlCreateButton("Download", 10, 450)
$menu = GUICtrlCreateContextMenu($button)
$scriptfilesitem[0][0] = GUICtrlCreateMenuItem("scriptfiles",$menu)
$scriptfilesitem[0][1] = "scriptfiles"
GUICtrlCreateMenuItem("",$menu)
$scriptfilesitem[1][0] = GUICtrlCreateMenuItem("ordner",$menu)
$scriptfilesitem[1][1] = "ordner"
$auswahlgui = GUICreate("Scriptfile Hochladen", 406, 93)
GUICtrlSetDefColor(0x000000)
GUISetBkColor(0xFFFFFF)
GUICtrlCreateLabel("Bitte wählen sie aus, welches format hochgeladen werden soll", 56, 16, 296, 17)
$dir = GUICtrlCreateButton("Ordner", 48, 56, 75, 25, $WS_GROUP)
$data = GUICtrlCreateButton("Datei", 152, 56, 75, 25, $WS_GROUP)
$cancelauswahl = GUICtrlCreateButton("Abbrechen", 256, 56, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW,$test)
[/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg(1)
For $i = 0 To $maxordner - 1
Select
Case $msg[1] = $test
Switch $msg[0]
Case $button
MouseClick("secondary")
Case -3
Exit
Case $scriptfilesitem[$i][0]
GUISetState(@SW_SHOW, $auswahlgui)
If $scriptfilesitem[$i][1] <> "scriptfiles" Then
GUICtrlSetState($dir,$GUI_DISABLE)
Else
GUICtrlSetState($dir,$GUI_ENABLE)
EndIf
While 1
$amsg = GUIGetMsg()
Switch $amsg
Case $dir
$auswahl = 1
$cancel = 0
GUISetState(@SW_HIDE, $auswahlgui)
ExitLoop
Case $data
$auswahl = 2
$cancel = 0
GUISetState(@SW_HIDE, $auswahlgui)
ExitLoop
Case $cancelauswahl, -3
$cancel = 1
GUISetState(@SW_HIDE, $auswahlgui)
ExitLoop
EndSwitch
WEnd
If $cancel = 0 And $auswahl = 1 Then
$updir = FileSelectFolder("Welcher ordner soll hochgeladen werden", @DesktopDir, 7)
If @error Then $cancel = 1
$upfile = ""
ElseIf $cancel = 0 And $auswahl = 2 Then
$upfile = FileOpenDialog("Welche datei soll hochgeladen werden?", @DesktopDir, "Alle Dateien(*.*)")
If @error Then $cancel = 1
$updir = ""
EndIf
If $cancel = 0 And $updir <> "" Then
$split = StringSplit($updir, "/", 1)
$open = _FTP_Open("samp")
$ftpconnect = _FTP_Connect($open, $ip, "xxx", "xxx", 1, 509)
_FTP_DirSetCurrent($ftpconnect, $loginname & "/scriptfiles")
_FTP_DirCreate($ftpconnect, $split[$split[0]])
_FTP_DirSetCurrent($ftpconnect, $split[$split[0]])
$filelist = _FileListToArray($updir)
For $u = 1 To $filelist[0]
_FTP_ProgressUpload($ftpconnect, $updir & $filelist[$u], $filelist[$u])
Next
_FTP_Close($open)
MsgBox(0, "Ordner Hochladen", "Der Ordner wurde erfolgreich hochgeladen")
ElseIf $cancel = 0 And $upfile <> "" Then
$open = _FTP_Open("samp")
$ftpconnect = _FTP_Connect($open, $ip, "xxx", "xxx", 1, 509)
_FTP_DirSetCurrent($ftpconnect, $loginname & "/scriptfiles")
If $i <> 0 Then _FTP_DirSetCurrent($ftpconnect, $scriptfilesitem[$i][1])
$split = StringSplit($upfile, "/", 1)
_FTP_ProgressUpload($ftpconnect, $upfile, $split[$split[0]])
_FTP_Close($open)
MsgBox(0, "Datei Hochladen", "Die Datei wurde erfolgreich Hochgeladen")
EndIf
EndSwitch
EndSelect
Next
WEnd
mir werden keine errors und auch keine warnings angezeigt
EDIT: hab mal die gui´s zum script gelegt, sodass mans einfach kopieren kann und testen kann (nur eben beim ftp_connect die logindaten ändern)