Autor Beitrag
daywalker0086
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243


Delphi 2005 Architect
BeitragVerfasst: Sa 30.04.05 22:40 
Moderiert von user profile iconraziel: Von diesem Thema abgetrennt.

das hab ich hinbekommen.

Hab da noch ein kleines anderes Problem,
lasse mir alle Dateien eines Ordners anzeigeen, aber er zeigt die erste Datei immer nich an, liegt
an meinem Code, aber ich weis nich warum:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
FindFirst(dir+'*.*',faAnyFile,tr);
    while FindNext(tr)=0 do
        begin
        if not (tr.Name='..'then
        begin
         if (tr.Attr and faDirectory > 0then
         FindAllFiles(dir+tr.Name+'\',output,count) else
            begin
              inc(count);
              output.Add(dir+tr.Name);
            end;
        end;
    end;


Könnt ihr mir da nochmal helfen bitte

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.
fvolk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 203

Win XP (Home & Pro)
Delphi 2005 Pers
BeitragVerfasst: So 01.05.05 12:36 
Das liegt daran, dass FindFirst auch schon einen Dateinamen zurückliefert, du diese aber erst an dem ersten Aufruf von FindNext (der sinnigerweise schon den zweiten Dateinamen liefert) verwendest. Du müsstest also nach dem Aufruf von FindFirst schonmal output.Add() machen.
Zusätzlich wird meiner Meinung nach der Ordner '.' vor der Rekursion nicht geprüft - das wiederum hängt mit der fehlenden Reaktion auf das FindFirst zusammen.

Außerdem liefert der (von dir kopierte?) Code nicht alle Dateien in einem Verzeichnis, sondern auch die in den entsprechenden Unterverzeichnissen.

Btw: Eigentlich gibt es hier im Forum eine "Neue Frage - neuer Thread"-Philosophie.

//Edit: letzter Kommentar hat sich somit erledigt

_________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist überzeugt, dass er genug davon habe.
(René Descartes)