Einzelnen Beitrag anzeigen

MCQ

Registriert seit: 14. Jan 2004
Ort: Dessau
80 Beiträge
 
#1

kurioser Fehler beim auflisten der Dateien (?!)

  Alt 7. Dez 2005, 04:33
Ich wollte grad eine DLL schreiben die mir aus mehreren Dateien ein Arciv erstellt und aus diesem Archiv auch wieder diese Dateien erstellen kann. Nun komme ich aber bereits beim aulisten der Dateien zu einem kuriosen Fehler den ich mir nicht erklären kann. ier der bisherige Quelltext der Funktion:

Delphi-Quellcode:
procedure CreateHeader(path:PChar;var header:array of char; var HeaderSize:Cardinal; relpath:pchar; FirstFilePos:Cardinal=0);
var subdirs : TStrings;
    hSuche : THandle;
    finddata : _WIN32_FIND_DATA;
    i : integer;
    posval : cardinal;
begin
// erstellt den Achive-Header und schreibt ihn in die Variable "header"
subdirs:=TStringList.Create;
hSuche:=0;
hSuche:=FindFirstFile(PChar(path+'\*'),finddata);
memo.Lines.Add('');
memo.Lines.Add(path);
while hSuche<>INVALID_HANDLE_VALUE do
 begin
  if (string(finddata.cFileName[0])<>'.') and (string(finddata.cFileName[0])<>'..') then
   begin
    if DirectoryExists(path+'\'+finddata.cFileName) then
     begin
     subdirs.Add(finddata.cFileName);
     memo.Lines.Add(finddata.cFileName+' <-- dir');
     end
    else
     begin
     memo.Lines.Add(finddata.cFileName+' <- file');
     end;
   end;
  FindNextFile(hSuche,FindData);
  if GetLastError=ERROR_NO_MORE_FILES then hSuche:=INVALID_HANDLE_VALUE;
 end;
if subdirs.Count=0 then exit;
for i := 0 to subdirs.Count-1 do
 CreateHeader(PChar(path+'\'+subdirs.strings[i]),header,headersize,PChar(relpath+'\'+subdirs.strings[i]),posval);
end;

In der MemoBox steht nach ausführung dieses Codes folgender Text:

Zitat:
D:\Projects\PHP\online-raub
inc.config.php <- file
init_vars.php <- file
Neuer Ordner <-- dir
site.dieb.php <- file
site.transfer.php <- file
site.userstat.php <- file
tresor.php <- file
_notes <-- dir

D:\Projects\PHP\online-raub\Neuer Ordner
Neu Textdokument.txt <- file
_notes <-- dir

D:\Projects\PHP\online-raub\Neuer Ordner\_notes
dwsync.xml <- file
Kopie von Neuer Ordner <-- dir

D:\Projects\PHP\online-raub\Neuer Ordner\_notes\Kopie von Neuer Ordner
_notes <-- dir

D:\Projects\PHP\online-raub\Neuer Ordner\_notes\Kopie von Neuer Ordner\_notes
dwsync.xml <- file

D:\Projects\PHP\online-raub\_notes
dwsync.xml <- file
Entferne ich nun nur diese beiden Zeilen im Quelltext:
Delphi-Quellcode:
memo.Lines.Add('');
memo.Lines.Add(path);
Sieht die ausgabe wie folgt aus:
Zitat:
inc.config.php <- file
init_vars.php <- file
Neuer Ordner <-- dir
site.dieb.php <- file
site.transfer.php <- file
site.userstat.php <- file
tresor.php <- file
_notes <-- dir
Die Dateien in den unterordnern (z.B. dwsync.xml und Neu Textdokument.txt) fehlen nun völlig, obwohl sie laaut Qulltext angezeigt werden müssten.
Kann mir jemannd dieses Phänomän erklären?
  Mit Zitat antworten Zitat