// Author: Robert Roebling, Vadim Zeitlin
// Modified by:
// Created: 28.12.00
-// RCS-ID: $Id$
// Copyright: (c) 2000 Robert Roebling
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_FILENAME_H_
#define _WX_FILENAME_H_
-/*
- TODO:
-
- 1. support for drives under Windows
- 2. more file operations:
- a) chmod()
- b) [acm]time() - get and set
- c) rename()?
- 3. SameFileAs() function to compare inodes under Unix
- */
-
#include "wx/arrstr.h"
#include "wx/filefn.h"
#include "wx/datetime.h"
wxPATH_RMDIR_RECURSIVE = 0x0002 // delete all recursively (dangerous!)
};
+// FileExists flags
+enum
+{
+ wxFILE_EXISTS_REGULAR = 0x0001, // check for existence of a regular file
+ wxFILE_EXISTS_DIR = 0x0002, // check for existence of a directory
+ wxFILE_EXISTS_SYMLINK = 0x1004, // check for existence of a symbolic link;
+ // also sets wxFILE_EXISTS_NO_FOLLOW as
+ // it would never be satisfied otherwise
+ wxFILE_EXISTS_DEVICE = 0x0008, // check for existence of a device
+ wxFILE_EXISTS_FIFO = 0x0016, // check for existence of a FIFO
+ wxFILE_EXISTS_SOCKET = 0x0032, // check for existence of a socket
+ // gap for future types
+ wxFILE_EXISTS_NO_FOLLOW = 0x1000, // don't dereference a contained symlink
+ wxFILE_EXISTS_ANY = 0x1FFF // check for existence of anything
+};
+
#if wxUSE_LONGLONG
// error code of wxFileName::GetSize()
extern WXDLLIMPEXP_DATA_BASE(const wxULongLong) wxInvalidSize;
// does anything at all with this name (i.e. file, directory or some
// other file system object such as a device, socket, ...) exist?
- bool Exists() const;
- static bool Exists(const wxString& path);
+ bool Exists(int flags = wxFILE_EXISTS_ANY) const;
+ static bool Exists(const wxString& path, int flags = wxFILE_EXISTS_ANY);
// checks on most common flags for files/directories;
bool IsFileExecutable() const { return wxIsExecutable(GetFullPath()); }
static bool IsFileExecutable(const wxString &path) { return wxFileExists(path) && wxIsExecutable(path); }
+ // set the file permissions to a combination of wxPosixPermissions enum
+ // values
+ bool SetPermissions(int permissions);
+
// time functions
#if wxUSE_DATETIME
// Dir accessors
size_t GetDirCount() const { return m_dirs.size(); }
- void AppendDir(const wxString& dir);
+ bool AppendDir(const wxString& dir);
void PrependDir(const wxString& dir);
- void InsertDir(size_t before, const wxString& dir);
+ bool InsertDir(size_t before, const wxString& dir);
void RemoveDir(size_t pos);
void RemoveLastDir() { RemoveDir(GetDirCount() - 1); }
// Other accessors
void SetExt( const wxString &ext ) { m_ext = ext; m_hasExt = !m_ext.empty(); }
- void ClearExt() { m_ext = wxEmptyString; m_hasExt = false; }
- void SetEmptyExt() { m_ext = wxT(""); m_hasExt = true; }
+ void ClearExt() { m_ext.clear(); m_hasExt = false; }
+ void SetEmptyExt() { m_ext.clear(); m_hasExt = true; }
wxString GetExt() const { return m_ext; }
bool HasExt() const { return m_hasExt; }
// returns the size in a human readable form
wxString
- GetHumanReadableSize(const wxString& nullsize = _("Not available"),
+ GetHumanReadableSize(const wxString& nullsize = wxGetTranslation("Not available"),
int precision = 1,
wxSizeConvention conv = wxSIZE_CONV_TRADITIONAL) const;
static wxString
GetHumanReadableSize(const wxULongLong& sz,
- const wxString& nullsize = _("Not available"),
+ const wxString& nullsize = wxGetTranslation("Not available"),
int precision = 1,
wxSizeConvention conv = wxSIZE_CONV_TRADITIONAL);
#endif // wxUSE_LONGLONG