@ALA
Eu percebi na sua na imagem que o conteúdo do ArqTXT está vazio e com isso ele tenta criar uma pasta vazia.
Aplica essa correção no metodo:
procedure WriteToTXT(const ArqTXT: String; ABinaryString: AnsiString;
const AppendIfExists: Boolean; const AddLineBreak: Boolean;
const ForceDirectory: Boolean);
var
FS : TFileStream ;
LineBreak : AnsiString ;
VDirectory : String;
begin
if Trim(ArqTXT) = '' then
Exit;
if ForceDirectory then
begin
VDirectory := ExtractFileDir(ArqTXT);
if not DirectoryExists(VDirectory) then
ForceDirectories(VDirectory);
end;
FS := TFileStream.Create( ArqTXT,
IfThen( AppendIfExists and FileExists(ArqTXT),
Integer(fmOpenReadWrite), Integer(fmCreate)) or fmShareDenyWrite );
try
FS.Seek(0, {$IFDEF COMPILER23_UP}soEnd{$ELSE}soFromEnd{$ENDIF}); // vai para EOF
FS.Write(Pointer(ABinaryString)^,Length(ABinaryString));
if AddLineBreak then
begin
LineBreak := sLineBreak;
FS.Write(Pointer(LineBreak)^,Length(LineBreak));
end ;
finally
FS.Free ;
end;
end;
Com isso se ArqTXT estiver vazio ele vai ignorar e não gera o problema de criar uma pasta vazia.