[Lazarus] How to create a directory from a path string? (cross-platform needed).
Michael Van Canneyt
michael at freepascal.org
Tue Mar 15 23:03:55 CET 2011
On Wed, 16 Mar 2011, Peter Williams wrote:
> Hi Sven,
>
> > Date: Tue, 15 Mar 2011 16:02:55 +0100
> > From: pascaldragon at googlemail.com
> > To: lazarus at lists.lazarus.freepascal.org
> > Subject: Re: [Lazarus] Unable to rewrite .ini file which exists... error unable to create
> .ini file. (need to rewrite it).
> >
> > Am 15.03.2011 15:51, schrieb Peter Williams:
> > > I just tried calling Str1 := GetAppConfigDir(true); ShowMessage(Str1);
> > >
> > > and my app is called Color_Life.exe and it returns
> > > "C:\ProgramData\Color_Life\". Since the folder "C:\ProgramData\" exists
> > > and it's subfolder "\Color_Life\" does NOT exist, then does this mean
> > > that I need to create it myself, or will my call to one of the
> > > "MemIniFiles" procedures create the folder for me?
> >
> > You need to create the path yourself. As I said: those functions just
> > return a string. What you do with it, is up to you.
> var
> str1 : string;
> begin
> str1 := GetAppConfigDir( true );
> ShowMessage( Str1 );
> // note: for Fred.exe returns C:\ProgramData\Fred\
> if not DirectoryExists(Str1) then
> // Create Directory Str1
> // call to 'mkdir' ??? what about on Linux??? and other platforms?
>
> What is the cross-platform way for me to create the directory in Str1 (as returned by
> GetAppConfigDir) ?
use ForceDirectories from the Sysutils unit:
http://www.freepascal.org/docs-html/rtl/sysutils/forcedirectories.html
Michael.
More information about the Lazarus
mailing list