Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   FTP Frage : Ordner mit dem Inhalt schnell löschen ! (https://www.delphipraxis.net/156428-ftp-frage-ordner-mit-dem-inhalt-schnell-loeschen.html)

thomas2009 1. Dez 2010 18:19

FTP Frage : Ordner mit dem Inhalt schnell löschen !
 
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

Luckie 1. Dez 2010 18:22

AW: FTP Frage : Ordner mit dem Inhalt schnell löschen !
 
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.

himitsu 1. Dez 2010 18:32

AW: FTP Frage : Ordner mit dem Inhalt schnell löschen !
 
Oder ein Programm (eventuell PHP) auf dem Server auszuführen, welcher das Löschen übernimmt. (notfalls dieses hochladen)

thomas2009 1. Dez 2010 18:49

AW: FTP Frage : Ordner mit dem Inhalt schnell löschen !
 
Hast Du den PHP Code, der den Ordner löscht ?

himitsu 1. Dez 2010 19:19

AW: FTP Frage : Ordner mit dem Inhalt schnell löschen !
 
Ja, mehrere: [GOOGLE]php rekursiv löschen[/GOOGLE]
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. :cry:

thomas2009 1. Dez 2010 19:50

AW: FTP Frage : Ordner mit dem Inhalt schnell löschen !
 
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);

   
    }

?>

Luckie 1. Dez 2010 19:55

AW: FTP Frage : Ordner mit dem Inhalt schnell löschen !
 
Schreibe dir ein zweites Skript, in dem du das zu löschende Verzeichnis festlegst und rufe dann die Funktion auf.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:28 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