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).
|
- Add wxHTTP::SetPostBuffer(wxMemoryBuffer) and SetPostText() (Eran Ifrah).
|
||||||
- Fix wrong time zone used in wxDateTime::UNow().
|
- Fix wrong time zone used in wxDateTime::UNow().
|
||||||
- Fix performance of wxStdInputStream with MSVC8/9 (wsu).
|
- Fix performance of wxStdInputStream with MSVC8/9 (wsu).
|
||||||
|
- Added wxFileName::Exists().
|
||||||
|
|
||||||
All (GUI):
|
All (GUI):
|
||||||
|
|
||||||
|
@@ -214,14 +214,20 @@ public:
|
|||||||
!m_ext.empty() || m_hasExt;
|
!m_ext.empty() || m_hasExt;
|
||||||
}
|
}
|
||||||
|
|
||||||
// does the file with this name exists?
|
// does the file with this name exist?
|
||||||
bool FileExists() const;
|
bool FileExists() const;
|
||||||
static bool FileExists( const wxString &file );
|
static bool FileExists( const wxString &file );
|
||||||
|
|
||||||
// does the directory with this name exists?
|
// does the directory with this name exist?
|
||||||
bool DirExists() const;
|
bool DirExists() const;
|
||||||
static bool DirExists( const wxString &dir );
|
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;
|
// checks on most common flags for files/directories;
|
||||||
// more platform-specific features (like e.g. Unix permissions) are not
|
// more platform-specific features (like e.g. Unix permissions) are not
|
||||||
// available in wxFileName
|
// available in wxFileName
|
||||||
|
@@ -452,11 +452,19 @@ public:
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
Returns @true if the directory with this name exists.
|
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;
|
bool DirExists() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Returns @true if the directory with name @a dir exists.
|
Returns @true if the directory with name @a dir exists.
|
||||||
|
|
||||||
|
@see FileExists(), Exists()
|
||||||
*/
|
*/
|
||||||
static bool DirExists(const wxString& dir);
|
static bool DirExists(const wxString& dir);
|
||||||
|
|
||||||
@@ -467,17 +475,40 @@ public:
|
|||||||
static wxFileName DirName(const wxString& dir,
|
static wxFileName DirName(const wxString& dir,
|
||||||
wxPathFormat format = wxPATH_NATIVE);
|
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.
|
Returns @true if the file with this name exists.
|
||||||
|
|
||||||
@see DirExists()
|
@see DirExists(), Exists()
|
||||||
*/
|
*/
|
||||||
bool FileExists() const;
|
bool FileExists() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Returns @true if the file with name @a file exists.
|
Returns @true if the file with name @a file exists.
|
||||||
|
|
||||||
@see DirExists()
|
@see DirExists(), Exists()
|
||||||
*/
|
*/
|
||||||
static bool FileExists(const wxString& file);
|
static bool FileExists(const wxString& file);
|
||||||
|
|
||||||
|
@@ -732,6 +732,12 @@ bool wxFileName::DirExists( const wxString &dirPath )
|
|||||||
return wxFileSystemObjectExists(dirPath, wxFileSystemObject_Dir);
|
return wxFileSystemObjectExists(dirPath, wxFileSystemObject_Dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* static */
|
||||||
|
bool wxFileName::Exists(const wxString& path)
|
||||||
|
{
|
||||||
|
return wxFileSystemObjectExists(path, wxFileSystemObject_Any);
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// CWD and HOME stuff
|
// CWD and HOME stuff
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -657,13 +657,16 @@ void FileNameTestCase::TestExists()
|
|||||||
|
|
||||||
CPPUNIT_ASSERT( fn.FileExists() );
|
CPPUNIT_ASSERT( fn.FileExists() );
|
||||||
CPPUNIT_ASSERT( !wxFileName::DirExists(fn.GetFullPath()) );
|
CPPUNIT_ASSERT( !wxFileName::DirExists(fn.GetFullPath()) );
|
||||||
|
CPPUNIT_ASSERT( fn.Exists() );
|
||||||
|
|
||||||
wxFileName dirTemp(wxFileName::DirName(wxFileName::GetTempDir()));
|
wxFileName dirTemp(wxFileName::DirName(wxFileName::GetTempDir()));
|
||||||
CPPUNIT_ASSERT( !dirTemp.FileExists() );
|
CPPUNIT_ASSERT( !dirTemp.FileExists() );
|
||||||
CPPUNIT_ASSERT( dirTemp.DirExists() );
|
CPPUNIT_ASSERT( dirTemp.DirExists() );
|
||||||
|
CPPUNIT_ASSERT( dirTemp.Exists() );
|
||||||
|
|
||||||
#ifdef __UNIX__
|
#ifdef __UNIX__
|
||||||
CPPUNIT_ASSERT( !wxFileName::FileExists("/dev/null") );
|
CPPUNIT_ASSERT( !wxFileName::FileExists("/dev/null") );
|
||||||
CPPUNIT_ASSERT( !wxFileName::DirExists("/dev/null") );
|
CPPUNIT_ASSERT( !wxFileName::DirExists("/dev/null") );
|
||||||
|
CPPUNIT_ASSERT( wxFileName::Exists("/dev/null") );
|
||||||
#endif // __UNIX__
|
#endif // __UNIX__
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user