Hallo!
Ich möchte in einer Android-APP mit Hilfe des IDPOP3-Clients Mails herunterladen. Lässt man die APP unter
Win32 laufen ist alles gut. Im Android steigt er bei:
IdPOP3.Retrieve(i, Mail);
mit der
Exception:
...Klasse EFCreateError mit der Meldung 'Datei "/Indy72C59D5A" kann nicht erstellt werden. Not a directory' aufgetreten.
aus.
Verfolgt man es weiter landet man in der
Unit System.Classes bei
TFileStream.Create
Es fliegt die
Exception, siehe unten fett markiert. Bei FileOpen ird ja unten der Unterschied gemacht. Ich nehme an, bei FileCreate sollte dies wohl auch sein.
Jemand eine Idee?
constructor TFileStream.Create(const AFileName: string; Mode: Word; Rights: Cardinal);
var
LShareMode: Word;
begin
if (Mode and fmCreate = fmCreate) then
begin
LShareMode := Mode and $FF;
if LShareMode = $FF then
LShareMode := fmShareExclusive; // For compat in case $FFFF passed as Mode
inherited Create(FileCreate(AFileName, LShareMode, Rights));
if FHandle = INVALID_HANDLE_VALUE then
raise EFCreateError.CreateResFmt(@SFCreateErrorEx, [ExpandFileName(AFileName), SysErrorMessage(GetLastError)]);
end
else
begin
{$IFDEF MSWINDOWS}
inherited Create(FileOpen(AFileName, Mode or Rights));
{$ELSE !MSWINDOWS}
inherited Create(FileOpen(AFileName, Mode));
{$ENDIF MSWINDOWS}
if FHandle = INVALID_HANDLE_VALUE then
raise EFOpenError.CreateResFmt(@SFOpenErrorEx, [ExpandFileName(AFileName), SysErrorMessage(GetLastError)]);
end;
FFileName := AFileName;
end;