Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ordner löschen (https://www.delphipraxis.net/103504-ordner-loeschen.html)

Seppel 16. Nov 2007 17:43

Re: Ordner löschen
 
Zitat:

Zitat von DeddyH
Evtl. so (vorsichtig beim Ausprobieren!!):
Delphi-Quellcode:
function DeleteDirRecursive(sPath: string; DoNotDelete: TStrings): Boolean;
var Rec: TSearchRec;
begin
  if not DirectoryExists(sPath) then
    begin
      Result := false;
      exit;
    end;
  sPath := IncludeTrailingPathDelimiter(sPath);
  if FindFirst(sPath + '*.*',faAnyFile,Rec) = 0 then
    begin
      repeat
        if (Rec.Attr and faDirectory) = faDirectory then
          begin
            if (Rec.Name <> '.') and (Rec.Name <> '..') and
               (*Vorsicht!! Man muss sich einig sein, wie man die
                 Verzeichnisnamen einträgt (ganzer Pfad oder nicht,
                 groß oder klein geschrieben etc.) *)
               (DoNotDelete.IndexOf(Rec.Name) < 0) then
              DeleteDirRecursive(sPath + Rec.Name,nil);
          end
        else
          DeleteFile(sPath + Rec.Name);
      until FindNext(Rec) <> 0;
      FindClose(Rec);
    end;
  Result := RemoveDir(sPath);
end;

DeleteDirRecursive('C:\Dokumente und Einstellungen\Sebastian\Desktop\Programmieren\Mysq lconnect\Pics\testtttt\', '1');
Also wenn ich das z.B. eingebe dann kommt ne Fehlermeldung Inkompatible Typen TString und char, hab ich die Syntax missachtet, was ich glaube^^.
Uses dürfte eigentlich nix sein.

DeddyH 16. Nov 2007 17:55

Re: Ordner löschen
 
Als 2. Parameter musst Du eine Liste mit den Verzeichnissen angeben, die nicht gelöscht werden sollen (z.B. ComboBox.Items oder sowas). Sollen alle Verzeichnisse gelöscht werden, gibst Du einfach nil an.

Seppel 16. Nov 2007 18:03

Re: Ordner löschen
 
Also wenn ichs so mache
Delphi-Quellcode:
DeleteDirRecursive('C:\Dokumente und Einstellungen\Sebastian\Desktop\Programmieren\Mysqlconnect\Pics\testtttt\', nil);
sagt er:
Zugriffsverletzung bla...

DeddyH 16. Nov 2007 18:06

Re: Ordner löschen
 
Delphi-Quellcode:
function DeleteDirRecursive(sPath: string; DoNotDelete: TStrings): Boolean;
var Rec: TSearchRec;
begin
  if not DirectoryExists(sPath) then
    begin
      Result := false;
      exit;
    end;
  sPath := IncludeTrailingPathDelimiter(sPath);
  if FindFirst(sPath + '*.*',faAnyFile,Rec) = 0 then
    begin
      repeat
        if (Rec.Attr and faDirectory) = faDirectory then
          begin
            if (Rec.Name <> '.') and (Rec.Name <> '..') and
               (not Assigned(DoNotDelete) or
               (*Vorsicht!! Man muss sich einig sein, wie man die
                 Verzeichnisnamen einträgt (ganzer Pfad oder nicht,
                 groß oder klein geschrieben etc.) *)
               (DoNotDelete.IndexOf(Rec.Name) < 0)) then
              DeleteDirRecursive(sPath + Rec.Name,nil);
          end
        else
          DeleteFile(sPath + Rec.Name);
      until FindNext(Rec) <> 0;
      FindClose(Rec);
    end;
  Result := RemoveDir(sPath);
end;
Und so?

[edit] Bedingung geändert, machte so keinen Sinn [/edit]

Seppel 16. Nov 2007 18:09

Re: Ordner löschen
 
Ok es geht also ich hab ja jetzt mit nil gemacht, da hats auch den Ordner mitgelöscht in dem alles drin war, war das so gedacht oder nur bei nil so?

DeddyH 16. Nov 2007 18:12

Re: Ordner löschen
 
Das war so gedacht. Aber Du kannst das ja auch noch überarbeiten.

Seppel 16. Nov 2007 18:24

Re: Ordner löschen
 
Habs selbst hinbekommen, danke.

Seppel 16. Nov 2007 20:03

Re: Ordner löschen
 
Hab ne kleine Frage und zwar will ich einen gewissen Inhalt aus dem Listview in die Combobox kopieren.
Ist der Ansatz richtig und was mache ich falsch.

Delphi-Quellcode:
for i:= 0 to combobox1.Items.Count -1 do
combobox1.AddItem(test.Items.Item[0]);// Hier ist definitiv der Fehler.
Ich will, dass Colum 1 und 2 zusammengefügt werden, z.B. Max (in dem 1.) und Mustermann in dem 2.
das soll dann in der Combobox so stehen: MaxMustermann.
Wie mache ich das jetzt?

edit:
Soll ich dafür jetzt einen neuen Thread auf machen??
:duck:
:coder2:

Seppel 17. Nov 2007 08:33

Re: Ordner löschen
 
up. :coder:

DeddyH 17. Nov 2007 08:39

Re: Ordner löschen
 
Die ListView und die ComboBox haben die gleiche Anzahl an Items und das Item der ListView soll immer hinter das der ComboBox?
Delphi-Quellcode:
for i := 0 to ComboBox1.Items.Count - 1 do
  ComboBox1.Items[i] := ComboBox1.Items[i] + ' ' +ListView1.Items[i];
Allerdings solltest Du hier dringend eine Fehlerbehandlung einbauen, falls sich die Anzahl der Items doch mal unterscheiden sollte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:23 Uhr.
Seite 2 von 3     12 3      

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