SetFTPDirectory Rückgabewert immer null

Anfängerfragen zum Programmieren mit PureBasic.
MeRobot
Beiträge: 7
Registriert: 25.05.2014 00:17
Computerausstattung: Windows 8.1, PureBasic 5.61

SetFTPDirectory Rückgabewert immer null

Beitrag 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.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: SetFTPDirectory Rückgabewert immer null

Beitrag 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
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
MeRobot
Beiträge: 7
Registriert: 25.05.2014 00:17
Computerausstattung: Windows 8.1, PureBasic 5.61

Re: SetFTPDirectory Rückgabewert immer null

Beitrag 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?
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: SetFTPDirectory Rückgabewert immer null

Beitrag 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
a²+b²=mc²
MeRobot
Beiträge: 7
Registriert: 25.05.2014 00:17
Computerausstattung: Windows 8.1, PureBasic 5.61

Re: SetFTPDirectory Rückgabewert immer null

Beitrag 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.
MeRobot
Beiträge: 7
Registriert: 25.05.2014 00:17
Computerausstattung: Windows 8.1, PureBasic 5.61

Re: SetFTPDirectory Rückgabewert immer null

Beitrag 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
Antworten