![]() |
Re: Wininet und FTP (Verzeichnis rekursiv löschen)
Hi,
eigentlich wie ich zu erst gedacht hatte (die ersten sind meistens die besten ideen ;) ). Es ist die nicht elegante Version (zwichenspeichern). Das hab ich zum Anfang auch versucht, nur vergessen die Verzeichnisse noch zu löschen :( War wahrscheinlich schon zu spät am Abend ;) Naja da finde ich die INDY Komponenten schon besser, nur die haben probleme gemacht. Ach wenn ich schon am tippen bin ;) Der Inet Monitor war leider nicht was ich gesucht hab oder falsch gelesen ;) Zumindest such ich noch ein wenig was über InternetStatusCallback, vielleicht hat da jemand noch ein kleines Source Code Stück. Würde mich freuen. MfG PS: Ist jemand schonmal aufgefallen das das letzte Verzeichnis wenn es leer ist nicht als Verzeichnis sondern als File erkannt wird? |
Re: Wininet und FTP (Verzeichnis rekursiv löschen)
vielleicth sollte ich einfach mal den source hier reinpacken, ich hab nämlich gar nichts ähnliches im internet gefunden.
Vielleicht findet sich ja jemand der ihn noch verbessert oder jemand anderen nützt das als anfang.
Delphi-Quellcode:
wobei ihr die funktion GetFolderPath auch wegdenken könnt. Die schneidet nur das Laufwerk raus.
procedure DeleteFolderRecursive(hFTP: HINTERNET; Path: String);
var hSearch: HINTERNET; findData: WIN32_FIND_DATA; TempList: TStringList; i: Integer; begin TempList := TStringList.Create; try hSearch := FtpFindFirstFile(hFTP,PChar(GetFolderPath(Path)),findData,0,0); repeat if findData.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY then begin if not FtpRemoveDirectory(hFTP, PChar(GetFolderPath(Path))) then begin TempList.Add(Path + findData.cFileName + '\'); end; end else begin if not FtpDeleteFile(hFTP, PChar(GetFolderPath(Path) + findData.cFileName)) then Main_Extras.ErrorPrint('Could not delete File ' + Path + findData.cFileName + '.', 'FTP File Delete Error'); end; until not InternetFindNextFile(hSearch,@findData); InternetCloseHandle(hSearch); for i:=0 to TempList.Count-1 do begin DeleteFolderRecursive(hFTP, TempList[i]); if not FtpRemoveDirectory(hFTP, PChar(GetFolderPath(TempList[i]))) then Main_Extras.ErrorPrint('Could not delete Folder ' + TempList[i] + '.', 'FTP Folder Delete Error'); end; finally TempList.Free; end; end; MfG |
Re: Wininet und FTP (Verzeichnis rekursiv löschen)
Ich habe das gleiche Problem,
aber ich habe erst gerade mit dem Delphi-Proggen anfangen und benutze aus diesem Grund die Indy-Variante(IdFTP). Ich habe versucht den CodeSchnipsel in mein Prog einzubinden nur leider hat es nicht funktioniert! Welche Units muss ich zusätzlich einbinden um das nutzen zu können? Oder kennt jemand ne Lösung für die Indy-Variante? Muß ich vielleicht nur einige Variablen umbennen? Tut mir Leid dass ich so dumme fragen stelle bin aber wirklich real anfänger!(zumindest beim Delphi-Proggen) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz