wxFileName::AssignCwd() and wxFileName::SetFullName() problems

Volker Bartheld dr_versaeg at freenet.de
Mon Dec 11 10:35:47 PST 2006


P.S.:

On Mon, 11 Dec 2006 19:04:33 +0100, Volker Bartheld
<dr_versaeg at freenet.de> wrote :
>My original intention was to have a function that always returns a valid
>file reference, either from the parameter's absolute or relative path or
>a default (default_file.txt) that points to a file that is shipped with
>the binary. Like that:
>
>  wxString foo(const wxString& s)
>     {
>     wxFileName FileName;
>     FileName.AssignCwd(GetDataFolderOfApplication());
>     FileName.SetFullName(s);
>     if(!wxFileName::IsFileReadable(FileName.GetFullPath()))  FileName.SetFullName(wxT("default_file.txt"));
>     return FileName.GetFullPath();
>     }
>
>So, if I call foo(wxT("c:\\autoexec.bat")) this should return
>wxString(wxT("c:\\autoexec.bat")), if I call foo(wxT("test.txt")) it
>should look into and return GetDataFolderOfApplication()+wxT("test.txt")
>if the file is readable and default to
>GetDataFolderOfApplication()+wxT("default_file.txt") if not.

A work-around would be

  wxString foo(const wxString& s)
     {
     wxFileName FileName(s);
     if(FileName.IsRelative())
       {
       FileName.AssignDir(GetDataFolderOfApplication());
       FileName.SetFullName(s);
       }
     if(!wxFileName::IsFileReadable(FileName.GetFullPath()))
       {
       FileName.AssignDir(GetDataFolderOfApplication());
       FileName.SetFullName(wxT("default_file.txt"));
       }
     return FileName.GetFullPath();
     }

but looks a little clumsy to me.

Cheers,
Volker
__
Mail replies to/an V B A R T H E L D at G M X dot D E






More information about the wx-users mailing list