#include "wx/datetime.h"
#include "wx/intl.h"
#include "wx/longlong.h"
+#include "wx/file.h"
#if wxUSE_FILE
class WXDLLIMPEXP_FWD_BASE wxFile;
wxPATH_GET_SEPARATOR = 0x0002 // terminate the path with the separator
};
-// MkDir flags
+// Mkdir flags
enum
{
wxPATH_MKDIR_FULL = 0x0001 // create directories recursively
};
+// Rmdir flags
+enum
+{
+ wxPATH_RMDIR_FULL = 0x0001, // delete with subdirectories if empty
+ wxPATH_RMDIR_RECURSIVE = 0x0002 // delete all recursively (dangerous!)
+};
+
#if wxUSE_LONGLONG
// error code of wxFileName::GetSize()
extern WXDLLIMPEXP_DATA_BASE(const wxULongLong) wxInvalidSize;
// assorted assignment operators
wxFileName& operator=(const wxFileName& filename)
- { Assign(filename); return *this; }
+ { if (this != &filename) Assign(filename); return *this; }
wxFileName& operator=(const wxString& filename)
{ Assign(filename); return *this; }
#endif // wxUSE_FFILE
// directory creation and removal.
- bool Mkdir( int perm = 0777, int flags = 0);
- static bool Mkdir( const wxString &dir, int perm = 0777, int flags = 0 );
+ bool Mkdir(int perm = wxS_DIR_DEFAULT, int flags = 0);
+ static bool Mkdir(const wxString &dir, int perm = wxS_DIR_DEFAULT,
+ int flags = 0);
- bool Rmdir();
- static bool Rmdir( const wxString &dir );
+ bool Rmdir(int flags = 0);
+ static bool Rmdir(const wxString &dir, int flags = 0);
// operations on the path
wxString* arguments = NULL);
#endif
+#ifndef __WXWINCE__
+ // if the path contains the value of the environment variable named envname
+ // then this function replaces it with the string obtained from
+ // wxString::Format(replacementFmtString, value_of_envname_variable)
+ //
+ // Example:
+ // wxFileName fn("/usr/openwin/lib/someFile");
+ // fn.ReplaceEnvVariable("OPENWINHOME");
+ // // now fn.GetFullPath() == "$OPENWINHOME/lib/someFile"
+ bool ReplaceEnvVariable(const wxString& envname,
+ const wxString& replacementFmtString = "$%s",
+ wxPathFormat format = wxPATH_NATIVE);
+#endif
+
+ // replaces, if present in the path, the home directory for the given user
+ // (see wxGetHomeDir) with a tilde
+ bool ReplaceHomeDir(wxPathFormat format = wxPATH_NATIVE);
+
+
// Comparison
// compares with the rules of the given platforms format