AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Ordner rekursiv durchsuchen bis zu maximaler Tiefe
Thema durchsuchen
Ansicht
Themen-Optionen

Ordner rekursiv durchsuchen bis zu maximaler Tiefe

Ein Thema von Flodding · begonnen am 27. Dez 2009 · letzter Beitrag vom 31. Dez 2009
 
Flodding

Registriert seit: 26. Dez 2007
Ort: Kiel
121 Beiträge
 
Turbo Delphi für Win32
 
#1

Ordner rekursiv durchsuchen bis zu maximaler Tiefe

  Alt 27. Dez 2009, 23:25
Guten Abend zusammen...

ich arbeite grade an einem kleinen Projekt für das MMORPG "World of Warcraft".

Eigentlich macht dieses kleine Tool nichts weiter als den "Cache" Ordner und *.bak's aud diversen Unterordnern des WoW Verzeichnisses zu löschen um die Ladezeiten zu verkürzen... danach startet es dann den normalen WoW-Launcher und beendet sich danach selber.

bis jetzt hat alles gut geklappt...

sachen wie:

Delphi-Quellcode:
reg.Access := KEY_READ;
Reg.OpenKey('\Software\Blizzard Entertainment\World of Warcraft\', false);
GamePath:=Reg.ReadString('InstallPath');
und so liefen wie geschmiert...

auch

Delphi-Quellcode:
procedure TForm1.FileSearch(const PathName, FileName : string; const InDir : boolean);
var Rec : TSearchRec;
    Path : string;
begin
Path := IncludeTrailingBackslash(PathName);
if FindFirst(Path + FileName, faAnyFile - faDirectory, Rec) = 0 then
 try
   repeat
   DeleteFile(Path + Rec.Name);
   if not FileExists(Path + Rec.Name) then form3.ListBox1.Items.Add(Path + Rec.Name);
   if form3.ListBox1.Items.count > 2 then form3.Label1.Caption:= inttostr(form3.ListBox1.Items.Count) + ' Dateien gelöscht';
   if form3.ListBox1.Items.count = 1 then form3.Label1.Caption:= inttostr(form3.ListBox1.Items.Count) + ' Datei gelöscht';
   SetHorizontalScrollBar(form3.ListBox1) ;
   form3.Button1.Enabled:=false;
   until FindNext(Rec) <> 0;
 finally
   FindClose(Rec);
 end;

If not InDir then Exit;

if FindFirst(Path + '*.*', faDirectory, Rec) = 0 then
 try
   repeat
    if ((Rec.Attr and faDirectory) <> 0) and (Rec.Name<>'.') and (Rec.Name<>'..') then
     FileSearch(Path + Rec.Name, FileName, True);
   until FindNext(Rec) <> 0;
 finally
   FindClose(Rec);
 end;
form3.Button1.Enabled:=true;
end;
funktioniert ganz okay... auch wenns bestimmt besser geht... es erfüllt seinen Zweck.

Doch jetzt bin ich an dem Punkt, wo ich die "procedure TForm1.FileSearch" umbasteln muss, oder ne ganz andere brauche, denn ich möchte jetzt im "Path\Interface\Addons\" nach den *.toc's der installierten Addons suchen und diese dann auflisten um sie auf aktualität zu überprüfen... für die die nicht wissen wie so eine TOC aufgebaut ist:

---
## Interface: 30300
## Title: TweakWoW
## Author: xXx
## Version: 1.0
## Notes: ...
## DefaultState: Enabled
## LoadOnDemand: 0
## SavedVariables: AutoSellGreys, AutoRepair
TweakWoW.xml
---

Jetzt erkennt man schon dass ich in der zeile die zeichen nach "## Version: " suchen muss... das sollte später auch nicht das problem sein...

Jetzt also zu meinem Problem.

Wie gesagt ich befinde mich zurzeit im Ordner "Path\Interface\Addons\". Wenn ich jetzt die TOC von oben finden möchte muss ich in "Path\Interface\Addons\TweakWoW\" suchen und ich werde fündig. Jedoch gibt es andere Addons die weitere Unterordner beinhalten und in diesen befinden sich auch TOC's. Diese möchte ich aber bei einer Suche NICHT finden. Es geht mir nur um diese:

"Path\Interface\Addons\ADDONNAME\ADDONNAME.TOC "

Ich bin mir ziemlich sicher, dass ich mit der rekursiven Suche relativ nahe dran bin, jedoch habe ich nichts gefunden, womit ich die Unterordnertiefe bei einer suche einstellen kann...

Vielen Dank schonmal an hilfreiche Antworten

MFG

Floddy
Flo
  Mit Zitat antworten Zitat
 


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 19:22 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-2025 by Thomas Breitkreuz