From 2211428f2d3de7da6e057624e43dc8d13a106a54 Mon Sep 17 00:00:00 2001 From: fluxgen <fluxgen> Date: Sun, 17 Aug 2003 13:19:54 +0000 Subject: added isDirectory and isRegularFile --- src/FbTk/Directory.cc | 21 ++++++++++++++++++++- src/FbTk/Directory.hh | 7 +++++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/FbTk/Directory.cc b/src/FbTk/Directory.cc index 8d327dd..5ec5c0c 100644 --- a/src/FbTk/Directory.cc +++ b/src/FbTk/Directory.cc @@ -19,10 +19,13 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Directory.cc,v 1.1 2003/05/18 22:06:59 fluxgen Exp $ +// $Id: Directory.cc,v 1.2 2003/08/17 13:19:54 fluxgen Exp $ #include "Directory.hh" +#include <sys/stat.h> +#include <unistd.h> + namespace FbTk { Directory::Directory(const char *dir):m_dir(0), @@ -83,4 +86,20 @@ bool Directory::open(const char *dir) { return true; } +bool Directory::isDirectory(const std::string &filename) { + struct stat statbuf; + if (stat(filename.c_str(), &statbuf) != 0) + return false; + + return S_ISDIR(statbuf.st_mode); +} + +bool Directory::isRegularFile(const std::string &filename) { + struct stat statbuf; + if (stat(filename.c_str(), &statbuf) != 0) + return false; + + return S_ISREG(statbuf.st_mode); +} + }; // end namespace FbTk diff --git a/src/FbTk/Directory.hh b/src/FbTk/Directory.hh index 0786214..7862a51 100644 --- a/src/FbTk/Directory.hh +++ b/src/FbTk/Directory.hh @@ -19,7 +19,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Directory.hh,v 1.1 2003/05/18 22:06:59 fluxgen Exp $ +// $Id: Directory.hh,v 1.2 2003/08/17 13:19:54 fluxgen Exp $ #ifndef FBTK_DIRECTORY_HH #define FBTK_DIRECTORY_HH @@ -51,7 +51,10 @@ public: bool open(const char *dir); /// @return number of entries in the directory size_t entries() const { return m_num_entries; } - + /// @return true if file is a directory + static bool isDirectory(const std::string &filename); + /// @return true if a file is a regular file + static bool isRegularFile(const std::string &filename); private: DIR *m_dir; size_t m_num_entries; ///< number of file entries in directory -- cgit v0.11.2