| /*========================================================================= |
| |
| Program: KWSys - Kitware System Library |
| Module: $RCSfile$ |
| |
| Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved. |
| See Copyright.txt or http://www.kitware.com/Copyright.htm for details. |
| |
| This software is distributed WITHOUT ANY WARRANTY; without even |
| the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
| PURPOSE. See the above copyright notices for more information. |
| |
| =========================================================================*/ |
| #ifndef @KWSYS_NAMESPACE@_Directory_hxx |
| #define @KWSYS_NAMESPACE@_Directory_hxx |
| |
| #include <@KWSYS_NAMESPACE@/Configure.h> |
| |
| namespace @KWSYS_NAMESPACE@ |
| { |
| |
| class DirectoryInternals; |
| |
| /** \class Directory |
| * \brief Portable directory/filename traversal. |
| * |
| * Directory provides a portable way of finding the names of the files |
| * in a system directory. |
| * |
| * Directory currently works with Windows and Unix operating systems. |
| */ |
| class @KWSYS_NAMESPACE@_EXPORT Directory |
| { |
| public: |
| Directory(); |
| ~Directory(); |
| |
| /** |
| * Load the specified directory and load the names of the files |
| * in that directory. 0 is returned if the directory can not be |
| * opened, 1 if it is opened. |
| */ |
| bool Load(const char*); |
| |
| /** |
| * Return the number of files in the current directory. |
| */ |
| unsigned long GetNumberOfFiles() const; |
| |
| /** |
| * Return the number of files in the specified directory. |
| * A higher performance static method. |
| */ |
| static unsigned long GetNumberOfFilesInDirectory(const char*); |
| |
| /** |
| * Return the file at the given index, the indexing is 0 based |
| */ |
| const char* GetFile(unsigned long) const; |
| |
| /** |
| * Return the path to Open'ed directory |
| */ |
| const char* GetPath() const; |
| |
| /** |
| * Clear the internal structure. Used internally at beginning of Load(...) |
| * to clear the cache. |
| */ |
| void Clear(); |
| |
| private: |
| // Private implementation details. |
| DirectoryInternals* Internal; |
| }; // End Class: Directory |
| |
| } // namespace @KWSYS_NAMESPACE@ |
| |
| #endif |