Added wxFileName::Exists().
This function checks for existence of anything with the given name, not necessarily just a file or a directory. Extend the unit test to verify that it returns true for /dev/null on Unix systems. Closes #953. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70600 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -467,6 +467,7 @@ All:
|
||||
- Add wxHTTP::SetPostBuffer(wxMemoryBuffer) and SetPostText() (Eran Ifrah).
|
||||
- Fix wrong time zone used in wxDateTime::UNow().
|
||||
- Fix performance of wxStdInputStream with MSVC8/9 (wsu).
|
||||
- Added wxFileName::Exists().
|
||||
|
||||
All (GUI):
|
||||
|
||||
|
@@ -214,14 +214,20 @@ public:
|
||||
!m_ext.empty() || m_hasExt;
|
||||
}
|
||||
|
||||
// does the file with this name exists?
|
||||
// does the file with this name exist?
|
||||
bool FileExists() const;
|
||||
static bool FileExists( const wxString &file );
|
||||
|
||||
// does the directory with this name exists?
|
||||
// does the directory with this name exist?
|
||||
bool DirExists() const;
|
||||
static bool DirExists( const wxString &dir );
|
||||
|
||||
// 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 { return Exists(GetFullPath()); }
|
||||
static bool Exists(const wxString& path);
|
||||
|
||||
|
||||
// checks on most common flags for files/directories;
|
||||
// more platform-specific features (like e.g. Unix permissions) are not
|
||||
// available in wxFileName
|
||||
|
@@ -452,11 +452,19 @@ public:
|
||||
|
||||
/**
|
||||
Returns @true if the directory with this name exists.
|
||||
|
||||
Notice that this function tests the directory part of this object,
|
||||
i.e. the string returned by GetPath(), and not the full path returned
|
||||
by GetFullPath().
|
||||
|
||||
@see FileExists(), Exists()
|
||||
*/
|
||||
bool DirExists() const;
|
||||
|
||||
/**
|
||||
Returns @true if the directory with name @a dir exists.
|
||||
|
||||
@see FileExists(), Exists()
|
||||
*/
|
||||
static bool DirExists(const wxString& dir);
|
||||
|
||||
@@ -467,17 +475,40 @@ public:
|
||||
static wxFileName DirName(const wxString& dir,
|
||||
wxPathFormat format = wxPATH_NATIVE);
|
||||
|
||||
/**
|
||||
Calls the static overload of this function with the full path of this
|
||||
object.
|
||||
|
||||
@since 2.9.4
|
||||
*/
|
||||
bool Exists() const;
|
||||
|
||||
/**
|
||||
Returns @true if either a file or a directory or something else with
|
||||
this name exists in the file system.
|
||||
|
||||
This method is equivalent to @code FileExists() || DirExists() @endcode
|
||||
under most systems but under Unix it also returns true if the file
|
||||
identifies a special file system object such as a device, a socket or a
|
||||
FIFO.
|
||||
|
||||
@since 2.9.4
|
||||
|
||||
@see FileExists(), DirExists()
|
||||
*/
|
||||
static bool Exists(const wxString& path);
|
||||
|
||||
/**
|
||||
Returns @true if the file with this name exists.
|
||||
|
||||
@see DirExists()
|
||||
@see DirExists(), Exists()
|
||||
*/
|
||||
bool FileExists() const;
|
||||
|
||||
/**
|
||||
Returns @true if the file with name @a file exists.
|
||||
|
||||
@see DirExists()
|
||||
@see DirExists(), Exists()
|
||||
*/
|
||||
static bool FileExists(const wxString& file);
|
||||
|
||||
|
@@ -732,6 +732,12 @@ bool wxFileName::DirExists( const wxString &dirPath )
|
||||
return wxFileSystemObjectExists(dirPath, wxFileSystemObject_Dir);
|
||||
}
|
||||
|
||||
/* static */
|
||||
bool wxFileName::Exists(const wxString& path)
|
||||
{
|
||||
return wxFileSystemObjectExists(path, wxFileSystemObject_Any);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// CWD and HOME stuff
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@@ -657,13 +657,16 @@ void FileNameTestCase::TestExists()
|
||||
|
||||
CPPUNIT_ASSERT( fn.FileExists() );
|
||||
CPPUNIT_ASSERT( !wxFileName::DirExists(fn.GetFullPath()) );
|
||||
CPPUNIT_ASSERT( fn.Exists() );
|
||||
|
||||
wxFileName dirTemp(wxFileName::DirName(wxFileName::GetTempDir()));
|
||||
CPPUNIT_ASSERT( !dirTemp.FileExists() );
|
||||
CPPUNIT_ASSERT( dirTemp.DirExists() );
|
||||
CPPUNIT_ASSERT( dirTemp.Exists() );
|
||||
|
||||
#ifdef __UNIX__
|
||||
CPPUNIT_ASSERT( !wxFileName::FileExists("/dev/null") );
|
||||
CPPUNIT_ASSERT( !wxFileName::DirExists("/dev/null") );
|
||||
CPPUNIT_ASSERT( wxFileName::Exists("/dev/null") );
|
||||
#endif // __UNIX__
|
||||
}
|
||||
|
Reference in New Issue
Block a user