// Name: filefn.h
// Purpose: interface of wxPathList and file functions
// Author: wxWidgets team
-// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
class wxPathList : public wxArrayString
{
public:
+ /**
+ Standard constructor.
+ */
wxPathList();
/**
/**
The type used to store and provide byte offsets or byte sizes for files or streams.
- It is type-defined as @c off_t on POSIX platforms
- (see http://www.gnu.org/software/libc/manual/html_node/File-Position-Primitive.html)
- or to @c wxLongLong_t on Windows when @c wxHAS_HUGE_FILES is defined.
+ This type is usually just a synonym for @c off_t but can be defined as
+ @c wxLongLong_t if @c wxHAS_HUGE_FILES is defined but @c off_t is only 32
+ bits.
*/
typedef off_t wxFileOffset;
/**
Renames @a file1 to @e file2, returning @true if successful.
- If @a overwrite parameter is @true (default), the destination file is
- overwritten if it exists, but if @a overwrite is @false, the functions
- fails in this case.
+ If @a file2 is a directory, @a file1 is moved into it (@a overwrite is
+ ignored in this case). Otherwise, if @a file2 is an existing file, it is
+ overwritten if @a overwrite is @true (default) and the function fails if @a
+ overwrite is @false.
@header{wx/filefn.h}
*/
bool wxIsWild(const wxString& pattern);
/**
- Returns @true if the argument is an absolute filename, i.e. with a slash
+ Returns @true if the argument is an absolute filename, i.e.\ with a slash
or drive name at the beginning.
@header{wx/filefn.h}
*/
bool wxRemoveFile(const wxString& file);
+/**
+ File permission bit names.
+
+ We define these constants in wxWidgets because S_IREAD &c are not standard.
+ However, we do assume that the values correspond to the Unix umask bits.
+*/
+enum wxPosixPermissions
+{
+ /// Standard POSIX names for these permission flags with "wx" prefix.
+ //@{
+ wxS_IRUSR = 00400,
+ wxS_IWUSR = 00200,
+ wxS_IXUSR = 00100,
+
+ wxS_IRGRP = 00040,
+ wxS_IWGRP = 00020,
+ wxS_IXGRP = 00010,
+
+ wxS_IROTH = 00004,
+ wxS_IWOTH = 00002,
+ wxS_IXOTH = 00001,
+ //@}
+
+ /// Longer but more readable synonyms for the constants above.
+ //@{
+ wxPOSIX_USER_READ = wxS_IRUSR,
+ wxPOSIX_USER_WRITE = wxS_IWUSR,
+ wxPOSIX_USER_EXECUTE = wxS_IXUSR,
+
+ wxPOSIX_GROUP_READ = wxS_IRGRP,
+ wxPOSIX_GROUP_WRITE = wxS_IWGRP,
+ wxPOSIX_GROUP_EXECUTE = wxS_IXGRP,
+
+ wxPOSIX_OTHERS_READ = wxS_IROTH,
+ wxPOSIX_OTHERS_WRITE = wxS_IWOTH,
+ wxPOSIX_OTHERS_EXECUTE = wxS_IXOTH,
+ //@}
+
+ /// Default mode for the new files: allow reading/writing them to everybody but
+ /// the effective file mode will be set after ANDing this value with umask and
+ /// so won't include wxS_IW{GRP,OTH} for the default 022 umask value
+ wxS_DEFAULT = (wxPOSIX_USER_READ | wxPOSIX_USER_WRITE | \
+ wxPOSIX_GROUP_READ | wxPOSIX_GROUP_WRITE | \
+ wxPOSIX_OTHERS_READ | wxPOSIX_OTHERS_WRITE),
+
+ /// Default mode for the new directories (see wxFileName::Mkdir): allow
+ /// reading/writing/executing them to everybody, but just like wxS_DEFAULT
+ /// the effective directory mode will be set after ANDing this value with umask
+ wxS_DIR_DEFAULT = (wxPOSIX_USER_READ | wxPOSIX_USER_WRITE | wxPOSIX_USER_EXECUTE | \
+ wxPOSIX_GROUP_READ | wxPOSIX_GROUP_WRITE | wxPOSIX_GROUP_EXECUTE | \
+ wxPOSIX_OTHERS_READ | wxPOSIX_OTHERS_WRITE | wxPOSIX_OTHERS_EXECUTE)
+};
+
/**
Makes the directory @a dir, returning @true if successful.
@header{wx/filefn.h}
*/
-bool wxMkdir(const wxString& dir, int perm = 0777);
+bool wxMkdir(const wxString& dir, int perm = wxS_DIR_DEFAULT);
/**
Removes the directory @a dir, returning @true if successful. Does not work
*/
wxString wxFindFirstFile(const wxString& spec, int flags = 0);
+/**
+ Parameter indicating how file offset should be interpreted.
+
+ This is used by wxFFile::Seek() and wxFile::Seek().
+
+ @header{wx/filefn.h}
+*/
+enum wxSeekMode
+{
+ wxFromStart, ///< Seek from the file beginning.
+ wxFromCurrent, ///< Seek from the current position.
+ wxFromEnd ///< Seek from end of the file.
+};
+
/**
File kind enumerations returned from wxGetFileKind().
+ Also used by wxFFile::GetKind() and wxFile::GetKind().
+
@header{wx/filefn.h}
*/
enum wxFileKind