AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein FTP Frage : Ordner mit dem Inhalt schnell löschen !
Thema durchsuchen
Ansicht
Themen-Optionen

FTP Frage : Ordner mit dem Inhalt schnell löschen !

Ein Thema von thomas2009 · begonnen am 1. Dez 2010 · letzter Beitrag vom 1. Dez 2010
Antwort Antwort
thomas2009
(Gast)

n/a Beiträge
 
#1

FTP Frage : Ordner mit dem Inhalt schnell löschen !

  Alt 1. Dez 2010, 18:19
Hallo

der Code kann den Ordner in Server löschen nur, wenn er leer ist !
Wie kann ich den Ordner löschen auch wenn er nicht leer ist ?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
    idFTP1.Host := xxx;
    idFTP1.Username := xxx;
    idFTP1.Password := xxx;
    idFTP1.Port := StrToInt(Edit1.Text);
    idFTP1.Connect(true,3000);
    if CheckBox1.Checked=true then begin
       IdFTP1.ChangeDir('/' +Edit2.Text);end else begin
       IdFTP1.ChangeDir('/');end;
    IdFTP1.RemoveDir(Edit3.text); //löscht ein Verzeichnis
    idFTP1.disconnect;
    end;
Ich verwende zur Zeit eine free FTP Tool. Das Programm braucht sehr lange Zeit um den Ordner zu löschen, wenn der Ordner voller Dateien ist. Das Programm löscht Datei nach Datei !

Darum versuche ich mit dem Delphi was schnelles
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: FTP Frage : Ordner mit dem Inhalt schnell löschen !

  Alt 1. Dez 2010, 18:22
Der Server kann eben nur eine Datei nach der anderen löschen. Die einzige Möglichkeit, die ich sehe, um das zu beschleunigen, ist es die Dateien auf mehrere Threads aufzuteilen, die diese dann löschen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#3

AW: FTP Frage : Ordner mit dem Inhalt schnell löschen !

  Alt 1. Dez 2010, 18:32
Oder ein Programm (eventuell PHP) auf dem Server auszuführen, welcher das Löschen übernimmt. (notfalls dieses hochladen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
thomas2009
(Gast)

n/a Beiträge
 
#4

AW: FTP Frage : Ordner mit dem Inhalt schnell löschen !

  Alt 1. Dez 2010, 18:49
Hast Du den PHP Code, der den Ordner löscht ?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#5

AW: FTP Frage : Ordner mit dem Inhalt schnell löschen !

  Alt 1. Dez 2010, 19:19
Ja, mehrere: Bei Google suchenphp rekursiv löschen
Diese machen das Selbe wie dein Programm > via unlink jede Datei löschen ... nur daß es auf dem Server wesentlich schneller geht.


Die Dateisysteme in Windows und Linux bieten es eben nicht an, daß man via Wildcards löschen kann.
MSDN-Library durchsuchenDeleteFile/MSDN-Library durchsuchenRemoveDirectory und was das OS nicht anbietet, daß kann FTP nicht anbieten.
OK, MSDN-Library durchsuchenSHFileOperation scheint sowas zu können, aber dieses geht intern auch nur über die anderen APIs.
Nja, und im FTP-Protokoll wurde soein Kombibefehl leider nicht vorgesehn.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 1. Dez 2010 um 19:25 Uhr)
  Mit Zitat antworten Zitat
thomas2009
(Gast)

n/a Beiträge
 
#6

AW: FTP Frage : Ordner mit dem Inhalt schnell löschen !

  Alt 1. Dez 2010, 19:50
Wie kann ich diese Funktion aufrufen ?
Vermutlich nicht von aussen aufrufen :
Code:
<?php

// nbdeletefolder()
// Löscht ganze Verzeichnisse
// (c) 2003 Benjamin Fleckenstein
//     www.nb-kreativ.de
//     ben@nb-kreativ.de
//
// Dieses Script untersteht der GNU General Public License, welche
// unter www.gnu.org nachgelesen werden kann! Der Autor übernimmt
// keinerlei Garantie für die Funktionsfähigkeit dieses Scriptes!

    function nbdeletefolder($src) {   
       
        $handle = opendir($src);
       
        while($file = readdir($handle)) {
       
            if($file != '.' && $file != '..') {
           
                if(is_file($src . $file)) {
               
                    $file_src = $src . $file;
                   
                    unlink($file_src);
                   
               
                }
                else {                               
                   
                    $folder_src = $src . $file . '/';
                   
                    nbdeletefolder($folder_src);
               
                }
           
            }
       
        }           
       
        closedir($handle);      
       
        rmdir($src);

   
    }

?>
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: FTP Frage : Ordner mit dem Inhalt schnell löschen !

  Alt 1. Dez 2010, 19:55
Schreibe dir ein zweites Skript, in dem du das zu löschende Verzeichnis festlegst und rufe dann die Funktion auf.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:06 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