Einzelnen Beitrag anzeigen

devidespe

Registriert seit: 7. Sep 2006
Ort: Berlin
434 Beiträge
 
Delphi 10.4 Sydney
 
#1

Exception bei AssignFile mit langem Dateipfad

  Alt 27. Dez 2017, 19:28
Hallo zusammen,

mit einer Suchfunktion suche ich bestimmte Dateien einer Partition und möchte diese lesend öffnen, um die Dateigröße zu bestimmen. Das klappt soweit auch ganz gut per AssignFile:

Delphi-Quellcode:
var F : file of Byte;
begin
   …
   AssignFile(F, FileName);
   Filemode:=0; {nur Lesen !!!}
   {$I-} Reset(F); {$I+}
   if IOResult = 0 then
   begin
     Result:=FileSize(F);
     CloseFile(F);
   end;
   …
end;
Nun ist es aber so, dass ein Pfad sehr lang ist, und zwar wievolgt:

C:\Windows.old\WINDOWS\SoftwareDistribution\Downlo ad\4890056fe7c9079e4389ab89db94aaa5\amd64_Microsof t-Windows-Client-Features-Package~~AMD64~~10.0.17063.1000\amd64_dual_buttonc onverter.inf_31bf3856ad364e35_10.0.17063.1000_none _d7273a158fb55cdb\buttonconverter.inf

Dies führt dazu, dass AssignFile mit einer Exception abstürzt und mir folgenden Fehlertext liefert:

Es ist eine ExceptClass Exception mit folgendem Inhalt aufgetreten:Ungültiger Dateiname - %s

Kann mir dazu jemand etwas sagen? Wie kann ich die Exception vorab abfangen? Liegt das daran, dass Pfad plus Dateiname länger als 256 Zeichen sind? Per TotalCommander finde ich die Datei an der besagten Stelle. Es handelt sich um Delphi XE 10.1 unter Windows 10 x64. Danke vorab.
Devid
57 65 72 20 6C 65 73 65 6E 20 6B 61 6E 6E 2C 20 69 73 74 20 6B 6C 61 72 20 69 6D 20 56 6F 72 74 65 69 6C 21
  Mit Zitat antworten Zitat