Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IdFTP - ChangeDir - Invalid Number of Arguments (https://www.delphipraxis.net/119374-idftp-changedir-invalid-number-arguments.html)

Sam Razr 25. Aug 2008 16:58


IdFTP - ChangeDir - Invalid Number of Arguments
 
Hey,

ich muss leider schon wieder fragen, aber diese Kleinigkeiten bringen mich noch um den verstand.

Delphi-Quellcode:
//In das Galerieverzeichnis wechseln
  IdFTP1.ChangeDir(maindir);
//Im Galerieverzeichnis den Ordner erstellen
  idftp1.MakeDir(dir);
//In den Ordner wechseln
  IdFTP1.ChangeDir('/bgb/gal/'+dir);
Alles davor Stimmt soweit. In der Letzten Zeile des Ausschnitts dortoben stoppt er dann mit der Meldung:

Invalid Number of Arguments

Habe leider nichts dazu finden können. Vll kann mir ja nochmal jemand helfen.

Sam

PS: "Dir" ist ein String 'X2008XXXXName'

Assertor 25. Aug 2008 17:14

Re: IdFTP - ChangeDir - Invalid Number of Arguments
 
Hi Sam,

Zitat:

Zitat von Sam Razr
stoppt er dann mit der Meldung:

Invalid Number of Arguments

Wer ist "er"? Der Compiler, Dein Programm, der Remote FTP Server? Und prüf doch mal, was im Debugger ChangeDir als Wert übergeben wird.

Gruß Assertor

Sam Razr 25. Aug 2008 17:31

Re: IdFTP - ChangeDir - Invalid Number of Arguments
 
Projekt 1 gibt in einer Messagbox diesen Satz aus.
Ich kenn mich nicht gut mit dem Debugger aus, d.h. wo finde ich diese Werte?

marabu 25. Aug 2008 18:09

Re: IdFTP - ChangeDir - Invalid Number of Arguments
 
Hallo Sam,

ob der Fehler wirklich beim zweiten ChangeDir auftritt, kannst du mit einem zuverlässigen FTP Client überprüfen - das Verzeichnis müsste angelegt sein.

Ansonsten: ChangeDir() und MakeDir() können auf Fehlersituationen stoßen.

Delphi-Quellcode:
begin
  { ... }
  FTP.ChangeDir(maindir);
  try
    FTP.MakeDir(dir);
    FTP.ChangeDir(dir);
    { ... }
  except
    on E: Exception do
      ShowMessage(E:Message);
  end;
end;
Freundliche Grüße

Sam Razr 25. Aug 2008 21:20

Re: IdFTP - ChangeDir - Invalid Number of Arguments
 
Das Verzeichnis wurde nicht angelegt. Hier mal alle relevanten Codes:

Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
  var host,user,maindir,chd,password,dir,ph,pp:string;
  var i:integer;
begin
  //Titel ändern
  form3.Caption:='Upload - In Progress';
    //Button sperren
    button1.Enabled:=false;
  //Settings

  //ini
  ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'settings.ini');
    user:=ini.ReadString('Websettings','username','');
    password:=ini.ReadString('Websettings','password','');
    host:=ini.ReadString('Websettings','host','');

    ph:=ini.ReadString('Websettings','proxyhost','');
    pp:=ini.ReadString('Websettings','proxyport','');
    if pp='' then pp:='0';
    maindir:=ini.ReadString('Websettings','dir','');

//Upload

  //FTP Zuweisungen und Einstellungen
    IdFTP1.Host:=host;
    IdFTP1.Username:=user;
    IdFTP1.Password:=password;
    IdFTP1.ProxySettings.Host:=ph;
    IdFTP1.ProxySettings.Port:=StrToInt(pp);

//Verbinden
  idftp1.Connect(true,500);

//In das Galerieverzeichnis wechseln
  IdFTP1.ChangeDir(maindir);

//Im Galerieverzeichnis den Ordner erstellen
  idftp1.MakeDir(dir);
//In den Ordner wechseln
  chd:=dir;
  label2.caption:=chd;
  IdFTP1.ChangeDir(chd);
//Thumbnailordner erstellen
  idftp1.MakeDir('tn');

//Title Datei verschieben
  idFTP1.Put(path+'title.txt', 'title.txt',false);
  listbox1.Items.Add('title.txt');

//Normale Bilder verschieben
  for i:=0 to filelistbox1.Count do
    begin

      idFTP1.Put(path+filelistbox1.Items.Strings[i], filelistbox1.Items.Strings[i],false);
      listbox1.Items.Add(filelistbox1.Items.Strings[i]);

    end;

//Filelistbox auf Thumbnailverzeichnis stellen
  filelistbox1.Directory:=path+'\tn';

//Auf dem Server in Thumb Verzeichnis wechseln
  idftp1.ChangeDir('tn');

//Thumbs verschieben
  for i:=0 to filelistbox1.Count do
    begin

      idFTP1.Put(path+'\tn\'+filelistbox1.Items.Strings[i], filelistbox1.Items.Strings[i],false);
      listbox1.Items.Add(filelistbox1.Items.Strings[i]);

    end;

//Ausgabe der Verschobenen Dateien
  label1.Caption:=inttostr((2*filelistbox1.count)+1) + 'Files loaded to Server';

//Verbindung trennen
  IdFTP1.Quit;

//Titel ändern
  form3.Caption:='Upload - Ready';
 
end;
Delphi-Quellcode:
procedure TForm3.FormCreate(Sender: TObject);
begin

ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'settings.ini');

path:=ini.readstring('Settings','path','');
dir:=ini.readstring('Settings','maindir','');
label2.caption:=dir;
//form3.filelistbox1.Directory:=form1.directorylistbox1.Directory;
filelistbox1.Directory:=path;
end;

settings.ini:

Delphi-Quellcode:
[Settings]
Path=C:\Kopie (2) von 0Test\D20080825
Dir=D20080825
maindir=bgb/gal
[Websettings]
enableftp=true
username=NAME
password=PW
host=HOST
dir=bgb/gal
proxyhost=
proxyport=
Vielleicht findet ja jemand was. Danke schonmal füralle Hilfe!

Sam Razr 20. Okt 2008 17:58

Re: IdFTP - ChangeDir - Invalid Number of Arguments
 
Wo auch immer das Problem lag, ich habe es gelöst.
Hoffe ich finde irgendwann mal raus, was es war....
Danke nochmal an alle!

Sam


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz