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
- 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):
!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
/**
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);
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);
return wxFileSystemObjectExists(dirPath, wxFileSystemObject_Dir);
}
+/* static */
+bool wxFileName::Exists(const wxString& path)
+{
+ return wxFileSystemObjectExists(path, wxFileSystemObject_Any);
+}
+
// ----------------------------------------------------------------------------
// CWD and HOME stuff
// ----------------------------------------------------------------------------
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__
}