![]() |
TDirectory.GetFiles EInvalidePointer wenn Path leer
Hallo Zusammen,
wenn im Pfad keine gesuchte Dateien vorhanden sind, wird eine Exception vom Typ EInvalidePointer "Ungültige Zeigeroperation" gefeuert. Ist mindestens eine gesuchte Datei vorhanden gibt es keine Exception. Hat jemand eine Idee warum?
Delphi-Quellcode:
if not GetDirFilesEx(QuellPfad, '*.pdf', MyFileList, TSearchOption.soTopDirectoryOnly, false)then exit; function GetDirFilesEx(const StartDir, SearchPattern: string; out MyFileList : TStringList; SearchOption:TSearchOption; FileNameOnly:Boolean):Boolean; var LList: TStringDynArray; I: Integer; LSearchOption: TSearchOption; begin result := False; LList := TDirectory.GetFiles(StartDir, SearchPattern, SearchOption); for i := 0 to Length(LList)-1 do begin if FileNameOnly then MyFileList.Add(ExtractFileName(LList[i])) else MyFileList.Add(LList[i]); end; Result := MyFileList.Count>0; end; |
AW: TDirectory.GetFiles EInvalidePointer wenn Path leer
Kann ich nicht nachvollziehen, der Code läuft mit den Beispielparametern von dir durch. Kannst du ein vollständiges Beispiel posten? Ist dein
Delphi-Quellcode:
ordentlich initialisiert?
MyFileList
|
AW: TDirectory.GetFiles EInvalidePointer wenn Path leer
Zitat:
|
AW: TDirectory.GetFiles EInvalidePointer wenn Path leer
Genau aus solchen Gründen sollte man es immer vermeiden Objekte innerhalb einer Funktion zu erzeugen. Besser außerhalb erzeugen, Funktion aufrufen und außerhalb wieder freigeben. Dann gibt es keine Fragen der Zuständigkeit:
Delphi-Quellcode:
List := TStringList.Create;
try GetDirFilesEx(.., List); .. finally List.Free; end; |
AW: TDirectory.GetFiles EInvalidePointer wenn Path leer
Hallo Zusammen,
das Create ist vorhanden. Interessant ist, NUR wenn im QuellPfad keine PDFs vorhanden sind kommt die Exception ansonsten nicht! Die Ursache ist vermutlich eine andere. Ich werde weiter schauen. Danke für die Bestätigung.
Delphi-Quellcode:
...
MyFileList:=TStringList.Create; try QuellPfad := IncludeTrailingBackslash(deQuelle.Text); if not GetDirFilesEx(QuellPfad, '*.pdf', MyFileList, TSearchOption.soTopDirectoryOnly, false)then exit; ... finally MyFileList.free; end;{try} |
AW: TDirectory.GetFiles EInvalidePointer wenn Path leer
Dann setze beim Parametertyp der StringListe doch bitte das
Delphi-Quellcode:
weg, das ist missverständlich. Man erwartet eigentlich dass man einen nicht initialisierten Zeiger übergibt und der bei Erfolg mit einer gültigen TStringList-Instanz belegt ist.
out
Und du hast doch einen Debugger. Wo tritt die Exception denn genau auf? |
AW: TDirectory.GetFiles EInvalidePointer wenn Path leer
Hallo Güther,
sorry die Function funkt einwandfrei. Der Fehler ist außerhalb. Sorry dass ich es nicht gleich gesehen habe und Euch bemüht habe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 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