AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Alle dateien von C:\ in ein Memo

Ein Thema von Pseudemys Nelsoni · begonnen am 30. Aug 2005 · letzter Beitrag vom 30. Aug 2005
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Alle dateien von C:\ in ein Memo

  Alt 30. Aug 2005, 00:04
Moin,

ich habe eine Funktion geschrieben, die mit alle Dateien von C:\ auflisten sollte:

Delphi-Quellcode:
procedure GetFiles(const Path: string);
var
  SearchRec: TSearchRec;
  p: string;
begin
  p := path + '*.*';
  showmessage(p);
  if FindFirst(p, faAnyFile, SearchRec) = 0 then
  begin
    repeat
      if (SearchRec.Attr and faDirectory) = faDirectory then
        GetFiles(Path + SearchRec.Name + '\')
      else Form1.Memo1.Lines.Add(SearchRec.Name);
    until
      FindNext(SearchRec) <> 0;
    FindClose(SearchRec);
  end;
end;
Am Anfang zum Start übergebe ich "C:\"... das showmessage sollte mir nur als hilfe dienen um zu gucken ob die Pfäde stimmen, das tun sie aber nicht....die ersten 2 Ordner werden mir richtig angezeigt, aber nachher gibt es auf einmal ordner die nur "." heissen? WIe z.b "C:\MeinOrdner\.\"...woher kommt das?
Mario
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Alle dateien von C:\ in ein Memo

  Alt 30. Aug 2005, 00:17
In der Code-Lib haben wir doch schon so eine Funktion, warum vergleichst du damit nicht einfach mal? Desweiteren repräsentiert '.' den aktuellen Ordner und '..' den übergeordneten. Sie werden nur im Explorer logischerweise nicht angezeigt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: Alle dateien von C:\ in ein Memo

  Alt 30. Aug 2005, 00:27
Danke Luckie, mit der Addition von:

if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then klappt es.

Ich weiss zwar, das "." für den aktuellen und ".." für den übergeordneten ordner stehen, nur weiss ich nicht, wieso sie einem übergeben werden hier...hmm, das würde ich gerne verstehen
Mario
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Alle dateien von C:\ in ein Memo

  Alt 30. Aug 2005, 00:36
Moin Pseudemys Nelsoni,

das klingt jetzt vielleicht seltsam aber:
Sie werden Dir übergeben, weil sie da sind, und Du sie abfragst.

Mach mal ein Dir in der Konsole. Dort werden sie auch angezeigt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#5

Re: Alle dateien von C:\ in ein Memo

  Alt 30. Aug 2005, 01:37
Moin Christian,

also hat man in Unterordnern sozusagen immer versteckte(?) Ordner die auf den übergeordneten verweisen, richtig? Wenn das so ist, müsste das ganze dann nicht in einer Endlosschleife enden? Ich meine die Ordner würden ja immer wieder auf den anderen zeigen?

@Thema: Ich habe meinen Code nun so:

Delphi-Quellcode:
procedure GetFiles(const Path: string);
var
  SearchRec: TSearchRec;
  p: string;
begin
  p := path + '*.*';
  if FindFirst(p, faAnyFile, SearchRec) = 0 then
  begin
    repeat
      if (SearchRec.Attr and faDirectory) = faDirectory then
      begin
        if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
          GetFiles(Path + SearchRec.Name + '\');
      end
      else Form1.Memo1.Lines.Add(SearchRec.Name);
    until
      FindNext(SearchRec) <> 0;
    FindClose(SearchRec);
  end;
end;
Ist daran immernoch was falsch? Weil komischer weise, bekomme ich am Ende der Suche:

Zitat:
desktop.ini
INFO2
desktop.ini
INFO2
desktop.ini
INFO2
desktop.ini
INFO2
desktop.ini
INFO2
desktop.ini
INFO2
desktop.ini
INFO2
desktop.ini
INFO2
desktop.ini
INFO2
desktop.ini
INFO2

Das kann nicht stimmen
Mario
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Alle dateien von C:\ in ein Memo

  Alt 30. Aug 2005, 02:09
Arbeitet beimir korrekt. Aber warum benutzt du nicht sakuras erprobte Methode aus der Coide-Lib? hat zu dem noch den Vorteil, dass sie, im gegensatz zu deiner Methode, unabhängig von der GUI ist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#7

Re: Alle dateien von C:\ in ein Memo

  Alt 30. Aug 2005, 02:15
Danke fürs Testen. Also bei mir finde ich per Windows-Suche nicht 1 Ergebnis auf "INFO2", hmm.

Ich habe Sakuras Code nicht benutzt, da ich so weit wie möglich immer versuche alles selbst zu schreiben - So kapier ich es meistens besser
Mario
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Alle dateien von C:\ in ein Memo

  Alt 30. Aug 2005, 02:34
Die desktop.ini Dateien sind bei mir versteckte Dateien. Läßt du dir die auch anzeigen im Explorer? Eventuell findet er sie deswegen nicht bzw. zeigt sie nicht an.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#9

Re: Alle dateien von C:\ in ein Memo

  Alt 30. Aug 2005, 05:51
Hallo Lucky, stimmt Du hast Recht, ich habe mir mal die Pfade komplett anzeigen lassen...

Zitat:
F:\RECYCLER\S-1-5-21-1085031214-1604221776-839522115-1003\desktop.ini
F:\RECYCLER\S-1-5-21-1085031214-1604221776-839522115-1003\INFO2
F:\RECYCLER\S-1-5-21-1214440339-113007714-839522115-1003\desktop.ini
F:\RECYCLER\S-1-5-21-1214440339-113007714-839522115-1003\INFO2
F:\RECYCLER\S-1-5-21-1390067357-179605362-839522115-1003\desktop.ini
F:\RECYCLER\S-1-5-21-1390067357-179605362-839522115-1003\INFO2
F:\RECYCLER\S-1-5-21-1409082233-1214440339-725345543-1003\desktop.ini
F:\RECYCLER\S-1-5-21-1409082233-1214440339-725345543-1003\INFO2
F:\RECYCLER\S-1-5-21-1715567821-2077806209-725345543-1003\desktop.ini
F:\RECYCLER\S-1-5-21-1715567821-2077806209-725345543-1003\INFO2
F:\RECYCLER\S-1-5-21-1844237615-308236825-839522115-1000\desktop.ini
F:\RECYCLER\S-1-5-21-1844237615-308236825-839522115-1000\INFO2
F:\RECYCLER\S-1-5-21-1960408961-2052111302-725345543-1003\desktop.ini
F:\RECYCLER\S-1-5-21-1960408961-2052111302-725345543-1003\INFO2
F:\RECYCLER\S-1-5-21-2052111302-573735546-839522115-1003\desktop.ini
F:\RECYCLER\S-1-5-21-2052111302-573735546-839522115-1003\INFO2
F:\RECYCLER\S-1-5-21-790525478-1682526488-682003330-1003\desktop.ini
F:\RECYCLER\S-1-5-21-790525478-1682526488-682003330-1003\INFO2
F:\RECYCLER\S-1-5-21-823518204-1078145449-682003330-1003\desktop.ini
F:\RECYCLER\S-1-5-21-823518204-1078145449-682003330-1003\INFO2
MfG
Mario
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:01 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