Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Löschen von ordner mit inhalt (https://www.delphipraxis.net/17037-loeschen-von-ordner-mit-inhalt.html)

xnetworker 27. Feb 2004 09:31


Löschen von ordner mit inhalt
 
Wie kann lösche ich ordner mit inhalt über die NMFTP-komponente?

Shivan 27. Feb 2004 09:39

Re: Löschen von ordner mit inhalt
 
Ich denke das einfachste ist, rekursiv durch gehen und dann die Dateien einzeln löschen, bevor du den Ordner selbst löschst. (anders gehts ja sowieso nicht)

xnetworker 27. Feb 2004 09:47

Re: Löschen von ordner mit inhalt
 
hmmmm jadachte ich mir auch. Wie kann ich dieeinzelnen dateien lösche wenn ich nicht die namen der dateien kenne?

Shivan 27. Feb 2004 09:52

Re: Löschen von ordner mit inhalt
 
Da gibts doch mit Sicherheit eine "List"-Funktion (oder "ls").
Die liefert dir dann den Inhalt dieses Verzeichnisses.

Dasselbe wie wenn du per Konsole "ftp" auf nen FTP-Server gehst... aber da gibts bestimmt bei nmftp noch ne bequemere Funktion die dir die Dateien eines Verzeichnisses listet.

Siehe Delphi-Hilfe:
Komponente TNMFTP

Deklaration

procedure List;

Beschreibung

Die Methode List liest den Inhalt des aktuellen Verzeichnisses auf dem FTP-Host ein.

ims 27. Feb 2004 10:08

Re: Löschen von ordner mit inhalt
 
hi

Delphi-Quellcode:
uses
ShellApi;


function DelDir(dir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do
  begin
    wFunc := FO_DELETE;
    fFlags := FOF_SILENT or FOF_NOCONFIRMATION;
    pFrom := PChar(dir + #0);
  end;
  Result := (0 = ShFileOperation(fos));
end;
löscht verzeichnis samt inhalt... (lösung aus diesem thread.)


gruss, dave

xnetworker 27. Feb 2004 10:20

Re: Löschen von ordner mit inhalt
 
kann ich diese funktion auch für eine aktion auf dem webserver nehmen oder nur zum löschen von daten auf der festplatte?

atreju2oo0 27. Feb 2004 10:28

Re: Löschen von ordner mit inhalt
 
Code:
 
var sr: TSearchRec;

if FindFirst(dir+'*.mp3',0,sr) = 0 then    // Alle MP3 Dateien aus Ordner
    begin
      repeat
        Listbox.Items.Add(dir+sr.Name);
      until FindNext(sr) <> 0;
    end;
Mit diesem Code schreibe ich alle Dateien in eine Listbox.
FindFirst gibt die Erste Datei und mit FindNext hangelt man sich dann bis zum Ende durch...
Is zwar mehr Quelltext als der von ims aber ich denke er ist leichter zu verstehen und erfüllt auch
seinen Zweck!
FTP sollte meiner Meinung nach damit aber nicht gehen...
:gruebel:

APP 27. Feb 2004 10:46

Re: Löschen von ordner mit inhalt
 
Hallo xnetworker,
ich habe zwar keinen Webserver zur Verfügung, habe aber in
news://comp.lang.pascal.delphi.components.usage
(Delete all files from a directory on a FTP-server)
folgendes gefunden:
Delphi-Quellcode:
(NMFTP1.DoCommand('mdelete *.html')
allerdings scheint diser Aufruf nicht immer zu funktionieren,
da jemand meinte, dass dieser Befehl unter Unix fehlschlägt.

Vielleicht hilft Dir das ja weiter...

p.s. es gibt auf MSDN eine Beschreibung zu mdelete:
http://www.microsoft.com/technet/tre...p__mdelete.asp


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