AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Wininet und FTP (Verzeichnis rekursiv löschen)
Thema durchsuchen
Ansicht
Themen-Optionen

Wininet und FTP (Verzeichnis rekursiv löschen)

Ein Thema von md787 · begonnen am 21. Aug 2003 · letzter Beitrag vom 3. Dez 2003
Antwort Antwort
Seite 1 von 2  1 2      
md787

Registriert seit: 21. Aug 2003
8 Beiträge
 
#1

Wininet und FTP (Verzeichnis rekursiv löschen)

  Alt 21. Aug 2003, 08:06
Hi,
ich hab ein grosses Problem. Ich will ein Ordner auf einem FTP Server löschen. Die Funktion FtpRemoveDirectory löscht das Verzeichnis ja nur wenn es leer ist. Damit muss ich erstmal rekursiv die Verzeichnisse löschen und dann diese nacheinander löschen. Aber genau da ist mein Problem, da FtpFindFirstFile ja beendet werden muss um weiter suchen zu können.
Vielleicht hatte ja jemand ein ähnliches Problem und kann mir ein Denkanstoss geben.

Würde mich freuen.

MfG
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Wininet und FTP (Verzeichnis rekursiv löschen)

  Alt 21. Aug 2003, 08:22
Zitat von md787:
Aber genau da ist mein Problem, da FtpFindFirstFile ja beendet werden muss um weiter suchen zu können.
Das verstehe ich jetzt nicht.

Aber meines Erachtens sollte es mit den FTP-Funktionen genauso gehen, wie mit den localen Gegenstücken. Und dazu findest du Code hier in der Code Lib.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
md787

Registriert seit: 21. Aug 2003
8 Beiträge
 
#3

Re: Wininet und FTP (Verzeichnis rekursiv löschen)

  Alt 21. Aug 2003, 08:55
Hi,

Ertsmal danke für die schnelle Antwort.

Das stimmt auch, nur mit dem Unterschied das man nur einmal die FindFirst aufrufen kann. Somit kannst du auf der lokalen Ebene das in der Schleife rekursiv wieder aufrufen. Leider geht es dort nicht, weil er dann mit Suche schon im Gange abbricht.

Is immernoch nicht sehr verständlich.
Ähm wie kann ich das erklären. Mal ein kurzes stück von meinem source:

var
hSearch: HINTERNET;
findData: WIN32_FIND_DATA;
begin
hSearch := FtpFindFirstFile(hFTP,nil,findData,0,0);
repeat
// Delete Files and Folder
until not InternetFindNextFile(hSearch,@findData);
InternetCloseHandle(hSearch);
end;

Also in der repeat Schleife kann ich das nicht mehr aufrufen.
Es ist eigentlcih sehr trivial, aber es will nicht.

Hab gedacht vielleicht hatte jemand schon das gleiche Problem und hat eine elegante Lösung gefunden.
Spontan ist mit eingefallen die Verzeichnisse in einer Liste zwischenzuspeichern, aber das war auch nicht so gut.

MfG

PS: Hab ich total vergessen. Ich hab in einen Post gelesen dass Du einen Ineternetmonitor programmiert hast und das zum download angeboten hast. Wollte nur mal nachfragen ob ich den vielleicht mir mal angucken könnte?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Wininet und FTP (Verzeichnis rekursiv löschen)

  Alt 21. Aug 2003, 09:23
Du darfst nicht FTPFindFirst in deiner Schleife aufrufen, sonder du mußt deine Funktion wieder aufrufen und zwar mit dem dem ersten gefunden Verzeichnis als neues Startverzeichnis.

http://www.luckie-online.de/files/my...monitorsfx.exe Läuft aber nur korrekt unter 2000 und wahrscheinlich XP.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
md787

Registriert seit: 21. Aug 2003
8 Beiträge
 
#5

Re: Wininet und FTP (Verzeichnis rekursiv löschen)

  Alt 21. Aug 2003, 09:36
Hi,
danke erstmal für den Monitor.

Delphi-Quellcode:
procedure WasAuchImmer(hFTP: HINTERNET; Pfad: String);
var
  hSearch: HINTERNET;
  findData: WIN32_FIND_DATA;
begin
  //FtpSetCurrentDir(hFTP, PChar(Pfad));
  // oder hSearch := FtpFindFirstFile(hFTP,PChar(Pfad),findData,0,0); <- Das hab ich nicht getestet
// sollte aber auch funktionieren
  hSearch := FtpFindFirstFile(hFTP,nil,findData,0,0);
  repeat
    if Folder then WasAuchImmer(hFTP, Pfad + '\' + findData.cfFilename + '\');
  until not InternetFindNextFile(hSearch,@findData);
  InternetCloseHandle(hSearch);
end;
Meinst du das in etwa so (hab ich jetzt geschrieben aber von Prinzip)?

Und danke für die Geduld.

MfG
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Wininet und FTP (Verzeichnis rekursiv löschen)

  Alt 21. Aug 2003, 09:37
Ja so ungefähr.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
md787

Registriert seit: 21. Aug 2003
8 Beiträge
 
#7

Re: Wininet und FTP (Verzeichnis rekursiv löschen)

  Alt 21. Aug 2003, 09:43
Hi,
und genau da ist das Problem.

hSearch := FtpFindFirstFile(hFTP,nil,findData,0,0); <- wird damit rekursiv aufgerufen und das geht nicht.

MfG
  Mit Zitat antworten Zitat
md787

Registriert seit: 21. Aug 2003
8 Beiträge
 
#8

Re: Wininet und FTP (Verzeichnis rekursiv löschen)

  Alt 21. Aug 2003, 09:46
Moment mir fällt gerade ein.

Ich kann ja den Search Handle ausserhalb der procedure erstellen und dann diesen mit übergeben.

EDIT: Auch Blödsinn.

MfG
  Mit Zitat antworten Zitat
md787

Registriert seit: 21. Aug 2003
8 Beiträge
 
#9

Re: Wininet und FTP (Verzeichnis rekursiv löschen)

  Alt 21. Aug 2003, 14:18
Hi,
also ich hab es geschafft.

Wollte mich nur nochmal ganz herzlich bei Luckie bedanken.

MfG
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Wininet und FTP (Verzeichnis rekursiv löschen)

  Alt 21. Aug 2003, 14:26
Und wie hast du es geschaft?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:22 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