[Lazarus] Multi-platform console application, how to handle file paths?

Mehmet Erol Sanliturk m.e.sanliturk at gmail.com
Tue Oct 29 12:32:18 CET 2019

In Windows XP , it is possible to use "/" instead of "\" . Therefore , it
is NOT necessary to make two different file path representations . I am not
using any Windows now , therefore I can not say anything about last Windows
versions .

It is very easy to check whether "/" is usable on your Windows : Use a file
path with "/" . My opinion is that it will find the related file assuming
that your file path is correct other than "/" .

Mehmet Erol Sanliturk

On Tue, Oct 29, 2019 at 2:25 PM Bo Berglund via lazarus <
lazarus at lists.lazarus-ide.org> wrote:

> I am writing a console application intended to be portable between
> Windows and Linux and it uses files on the file system for
> configuration and also for processing data.
> Since the path delimiter is different on Unix and Windows I believe I
> have to handle this in my code, but how?
> I could create all paths inside the application using Windows
> delimiters and then upon usage send them to a "platform filter" like
> FixPlatformPath() below, which returns the string with the proper
> delimiters for the platform.
> Or else I have to check wherever the paths are dealt with and put
> conditionals inside the code in many places.
> Either way it feels a bit convoluted.
> Is there a better way?
> function FixPlatformPath(PathIn: string): string;
> begin
>   {$ifdef UNIX}
>     Result:= StringReplace(PathIn, '\', PathDelim, [rfReplaceAll]);
>   {$else}
>     Result:= StringReplace(PathIn, '/', PathDelim, [rfReplaceAll]);
>   {$endif}
> end;
> This would apply to all functions where files are handled such as
> reading config data, creating data files or reading data files etc...
> --
> Bo Berglund
> Developer in Sweden
> --
> _______________________________________________
> lazarus mailing list
> lazarus at lists.lazarus-ide.org
> https://lists.lazarus-ide.org/listinfo/lazarus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20191029/a5c9bc78/attachment-0001.html>

More information about the lazarus mailing list