AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Verzechniss: alle beinhaltenden Ordner ermitteln?

Verzechniss: alle beinhaltenden Ordner ermitteln?

Ein Thema von LuCSteR · begonnen am 3. Sep 2008 · letzter Beitrag vom 13. Jan 2009
Antwort Antwort
Seite 3 von 4     123 4   
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#21

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?

  Alt 3. Sep 2008, 16:28
Was übergibst Du denn als sList an die Prozedur? Und wieso als Var-Parameter?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
LuCSteR

Registriert seit: 16. Sep 2005
168 Beiträge
 
#22

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?

  Alt 3. Sep 2008, 16:34
Ich übergebe ihr ein nicht initialisiertes s:TSrings. Also "leer".
Stimmt, sList als var zu deklarieren war sinnlos. Aber daran haperts nicht.
ListSubDirs(TempDownloadDir, s); Stimmt die Benutzung mit s nicht? Habe mit TStrings vorher noch nix gemacht. Allerdings scheint es keine Syntax Fehler zu geben...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#23

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?

  Alt 3. Sep 2008, 16:48
Du kannst entweder z.B. ComboBox.Items übergeben oder Dir eine Stringlist erstellen.
Delphi-Quellcode:
var sl: TStringlist;
begin
  sl := TStringlist.Create;
  try
    ListSubDirs(TempDownloadDir,sl);
    ...
  finally
    sl.Free;
  end;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
LuCSteR

Registriert seit: 16. Sep 2005
168 Beiträge
 
#24

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?

  Alt 3. Sep 2008, 17:31
Irgendwie traurig, ich schlag mich den ganzen Nachmittag mit so einem trivialen Problem rum. Warum gibt es nicht einfach eine Standard Funktion, womit man ein Verzeichnis in ein anderes verschieben kann?

Das ist echt zum Mäuse melken.

Aufruf:
Delphi-Quellcode:
var
  i:integer;
  s:TStringList;
  h1, h2:string;

begin //alles in TempDownloadDir nach DownloadDir kopieren, danach TempDownloadDir löschen
      s:=TStringList.Create;
      ListSubDirs(TempDownloadDir, s);

      h1:=TempDownloadDir;
      //letzten Backslash abschneiden
      Delete(h1, Length(h1), 1);
      
      h2:=DownloadDir;
      //letzten Backslash abschneiden
      Delete(h2, Length(h2), 1);
      
      try
        for i:=0 to s.Count-1 do MoveDir(h1+s[i], h2+s[i]);
      finally
        s.Free;
      end;
      
      DeleteFile(h1);
end;
Das MoveDir funktioniert (getestet) zb. so MoveDir(h1, h2); einwandfrei...Nur nicht in der Schleife mit der StringListe...
Ich mache da morgen weiter und werd mal schaun, was überhaupt in der Liste drinne steht. Kein Bock jetzt mehr.

Danke für die Hilfe DaddyH.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#25

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?

  Alt 3. Sep 2008, 17:33
Hättest Du mal früher gesagt, was Du machen möchtest, hätte ich noch Hier im Forum suchenSHFileOperation als Alternative angeboten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
LuCSteR

Registriert seit: 16. Sep 2005
168 Beiträge
 
#26

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?

  Alt 3. Sep 2008, 17:52
Die Suche habe ich auch schon kräftig durchforstet.
Ich erklär vll mal kurz mein Anliegen:

es gibt nen Download und nen TempDownload Ordner. TempDownload wird beim Programmstart erstellt und beim schließen wieder gelöscht. Das klappt. Jetzt will ich, das alle Ordner die sich in TempDownload befinden nach Download befördert werden (wenn dafür die Option vom Nutzer getroffen wurde). Das MoveDir funktioniert ja einwandfrei. Nur muss ich ja möglicherweise nicht nur einen Ordner im tempDownload verschieben, sondern auch mehrere, deswegen muss ich MoveDir nicht auf TempDownload, sondern auf die einzelnen Ordner anwenden. Dafür brauch ich wiederum deren Namen.
Und da ist mein Problem. Die Funktion für die Ordnernamenbestimmung funktioniert nicht. Kommen zwar keine Fehler aber es wird auch garnichts in die String-Liste geschrieben...Hab das jetzt mal getestet.

Naja und für meinen Fall gibts noch nix im Forum

Wie gesagt, bis morgen.

Trotzdem könnte vll nochmal jmd schaun, ob meine StringList-Item-Ansteuerung so richtig ist und funktioniert das überhaupt, das wenn die ListSubDirs einen TStrings erwartet aber eine TStringList bekommt? Wie gesagt kenn mich da leider garnicht aus.

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#27

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?

  Alt 3. Sep 2008, 18:12
TStringlist ist ein Nachkomme von TStrings, somit automatisch auch vom Typ TStrings.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
LuCSteR

Registriert seit: 16. Sep 2005
168 Beiträge
 
#28

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?

  Alt 4. Sep 2008, 09:54
Es werden keine Elemente in die StringListe gepackt. Der Count ist 0.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#29

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?

  Alt 4. Sep 2008, 10:03
Delphi-Quellcode:
procedure ListSubDirs(sDir: string; const sList: TStrings);
var Rec: TSearchRec;
begin
  sList.BeginUpdate;
  try
    sList.Clear;
    if FindFirst(IncludeTrailingPathDelimiter(sDir) + '*.*', faDirectory or faReadOnly or faHidden or faArchive, Rec) = 0 then
    begin
      repeat
        if ((Rec.Attr and faDirectory) = faDirectory) and (Rec.Name <> '.') and (Rec.Name <> '..') then
          sList.Add(Rec.Name);
      until FindNext(Rec) <> 0;
      SysUtils.FindClose(Rec);
    end;
  finally
    sList.EndUpdate;
  end;
end;
Ohne Gewähr, da aus dem Kopf getippt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
LuCSteR

Registriert seit: 16. Sep 2005
168 Beiträge
 
#30

Re: Verzechniss: alle beinhaltenden Ordner ermitteln?

  Alt 4. Sep 2008, 10:20
Okay, die Prozedur funktioniert. 1a!
Ich glaube mit der Delphi Hilfe wäre ich auch von alleine auf die ganzen fehlenden Bedingungen gekommen :S.
Aber so.
Naja vielen Dank. Jetzt komm ich endlich mit meinem wirklichen Problem weiter
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:24 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