Other functions returning information about the file format provided by this
class are \helpref{GetVolumeSeparator}{wxfilenamegetvolumeseparator},\rtfsp
-\helpref{IsPathSeparator}{wxfilenameispathseparator} and\rtfsp
-\helpref{IsWild}{wxfilenameiswild}.
+\helpref{IsPathSeparator}{wxfilenameispathseparator}.
\helpref{IsRelative}{wxfilenameisrelative}
Returns {\tt TRUE} if this filename is not absolute.
-\membersection{wxFileName::IsWild}\label{wxfilenameiswild}
+\membersection{wxFileName::IsDir}\label{wxfilenameisdir}
-\func{bool}{IsWild}{\param{wxPathFormat }{format = wxPATH\_NATIVE}}
+\constfunc{bool}{IsDir}{\void}
-FIXME: what exactly does this do?
+Returns {\tt TRUE} if this object represents a directory, {\tt FALSE} otherwise
+(i.e. if it is a file). Note that this method doesn't test whether the
+directory or file really exists, you should use
+\helpref{DirExists}{wxfilenamedirexists} or
+\helpref{FileExists}{wxfilenamefileexists} for this.
\membersection{wxFileName::MakeRelativeTo}\label{wxfilenamemakerelativeto}
// is the char a path separator for this format?
static bool IsPathSeparator(wxChar ch, wxPathFormat format = wxPATH_NATIVE);
- // FIXME: what exactly does this do?
- bool IsWild( wxPathFormat format = wxPATH_NATIVE );
-
// Dir accessors
void AppendDir( const wxString &dir );
void PrependDir( const wxString &dir );
// Return the long form of the path (returns identity on non-Windows platforms)
wxString GetLongPath() const;
+ // Is this a file or directory (not necessarily an existing one)
+ bool IsDir() const { return m_name.empty() && m_ext.empty(); }
+
// various helpers
// get the canonical path format for this platform
#undef TEST_ALL
static const bool TEST_ALL = TRUE;
#else
- #define TEST_THREADS
+ #define TEST_FILENAME
static const bool TEST_ALL = FALSE;
#endif
{ _T("c:\\Windows\\command.com"), _T("c"), _T("\\Windows"), _T("command"), _T("com"), TRUE, wxPATH_DOS },
{ _T("\\\\server\\foo.bar"), _T("server"), _T("\\"), _T("foo"), _T("bar"), TRUE, wxPATH_DOS },
- // wxFileName support for Mac file names is broken crurently
+ // wxFileName support for Mac file names is broken currently
#if 0
// Mac file names
{ _T("Volume:Dir:File"), _T("Volume"), _T("Dir"), _T("File"), _T(""), TRUE, wxPATH_MAC },
for ( size_t n = 0; n < WXSIZEOF(tmpprefixes); n++ )
{
wxString path = wxFileName::CreateTempFileName(tmpprefixes[n]);
- if ( !path.empty() )
+ if ( path.empty() )
+ {
+ // "error" is not in upper case because it may be ok
+ printf("Prefix '%s'\t-> error\n", tmpprefixes[n]);
+ }
+ else
{
printf("Prefix '%s'\t-> temp file '%s'\n",
tmpprefixes[n], path.c_str());
m_dirs.Insert(wxT(".."), 0u);
}
+ if ( format == wxPATH_UNIX || format == wxPATH_DOS )
+ {
+ // a directory made relative with respect to itself is '.' under Unix
+ // and DOS, by definition (but we don't have to insert "./" for the
+ // files)
+ if ( m_dirs.IsEmpty() && IsDir() )
+ {
+ m_dirs.Add(_T('.'));
+ }
+ }
+
m_relative = TRUE;
// we were modified
return GetPathSeparators(format).Find(ch) != wxNOT_FOUND;
}
-bool wxFileName::IsWild( wxPathFormat WXUNUSED(format) )
-{
- // FIXME: this is probably false for Mac and this is surely wrong for most
- // of Unix shells (think about "[...]")
- return m_name.find_first_of(_T("*?")) != wxString::npos;
-}
-
// ----------------------------------------------------------------------------
// path components manipulation
// ----------------------------------------------------------------------------