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