Seite 1 von 1

SetFTPDirectory Rückgabewert immer null

Verfasst: 25.05.2014 00:31
von MeRobot
Hallo,

ich bin neu hier im Forum. Somit zunächst herzliche Grüße an alle :D

Nun gleich zur Frage. Kann es sein, dass die Funktion SetFTPDirectory() immer null zurück gibt, obwohl das Setzen der Directory funktioniert hat? Das wäre dann schade, da ein Fehlerauswertung nur indirekt über GetFTPDirectory() möglich wäre. Kann das jemand der einen FTP Server hat mal kurz testen? Danke.

Re: SetFTPDirectory Rückgabewert immer null

Verfasst: 25.05.2014 08:24
von STARGÅTE
Nein kann nicht sein.

SetFTPDirectory() gibt einen Wert ungleich 0 zurück, wenn das setzen erfolgreich war.

Bitte beachte bei der Funktion, das du keine vollständigen Pfade angeben kannst, sondern immer nur einen aktuellen Ordner im aktuellen Verzeichnis!

Code: Alles auswählen

InitNetwork()

If OpenFTP(1, "srv10.sysproserver.de", "web482", "***")
	
	Debug GetFTPDirectory(1)
	
	Debug SetFTPDirectory(1, "html")
	Debug SetFTPDirectory(1, "unionbytes")
	Debug SetFTPDirectory(1, "test")
	
	Debug GetFTPDirectory(1)
	
	CloseFTP(1)
	
EndIf
/
1
1
0
/html/unionbytes

Re: SetFTPDirectory Rückgabewert immer null

Verfasst: 25.05.2014 09:18
von MeRobot
Vielen Dank für deine Mühe. Leider klappt es bei mir nicht. Das man sich bei FTP immer vom aktuellen Ort durchhangelt, habe ich aus der Doku schon entnommen.
Mein Code ist eingentlich simple:

Code: Alles auswählen

Debug(SetFTPDirectory(#FTP_CON, "USER"))
Debug(GetFTPDirectory(#FTP_CON))
Die Ausgabe des Debuggers ist:

Code: Alles auswählen

0
/USER
Vielleicht ist das eine Eigenheit des FTP Servers auf den ich zugreife?

Re: SetFTPDirectory Rückgabewert immer null

Verfasst: 25.05.2014 10:56
von Kiffi
was gibt denn folgender Code bei Dir aus?

Code: Alles auswählen

Debug(GetFTPDirectory(#FTP_CON))
Debug(SetFTPDirectory(#FTP_CON, "USER"))
Debug(GetFTPDirectory(#FTP_CON))
Grüße ... Kiffi

Re: SetFTPDirectory Rückgabewert immer null

Verfasst: 25.05.2014 21:20
von MeRobot
Hallo Kiffi,

dann sieht es so aus:

Code: Alles auswählen

/
0
/USER
Ich habe das ganze unter Windows und Linux probiert - das Problem ist das Gleiche.

Beste Grüße.

Re: SetFTPDirectory Rückgabewert immer null

Verfasst: 29.05.2014 10:16
von MeRobot
Hallo,

damit das Thema zu einem Ende kommt, poste ich hier noch meinen Workarround, falls mal jemand das gleiche Problem hat. Den Code dürft ihr frei verwenden.

Code: Alles auswählen

Procedure.a fcSetFTPDirectory(iFTPid.l, strDirectory.s)

;created by MeRobot 2014
;this code is public domain
;http://creativecommons.org/publicdomain/zero/1.0/

  Protected strResult.s
  
  SetFTPDirectory(iFTPid, strDirectory)
  
  If strDirectory.s <> ".."
    
    strResult.s = GetFTPDirectory(iFTPid)
    
    If Len(strResult) < Len(strDirectory)
      ProcedureReturn 0  
    ElseIf Right(strResult, Len(strDirectory)) = strDirectory
      ProcedureReturn 1
    Else 
      ProcedureReturn 0
    EndIf
    
  Else
    ProcedureReturn 1
  EndIf

EndProcedure