Listing 2: FileEntry class.

class FileEntry
{
// Construction
public:
  FileEntry();
  FileEntry(FileEntry const &rhs);
  ~FileEntry();
  FileEntry &operator =(FileEntry const &rhs);
/// Attributes
public:
  string_t          GetPath() const;
#ifdef RECLS_PLATFORM_API_WIN32
  char              GetDrive() const;
#endif /* RECLS_PLATFORM_API_WIN32 */
  string_t          GetDirectory() const;
  string_t          GetDirectoryPath() const;
  DirectoryParts    GetDirectoryParts() const;
  string_t          GetFile() const;
  string_t          GetShortFile() const;
  string_t          GetFileName() const;
  string_t          GetFileExt() const;
  recls_time_t      GetCreationTime() const;
  recls_time_t      GetModificationTime() const;
  recls_time_t      GetLastAccessTime() const;
  recls_time_t      GetLastStatusChangeTime() const;
  recls_filesize_t  GetSize() const;
  recls_bool_t      IsReadOnly() const;
  recls_bool_t      IsDirectory() const;
  recls_bool_t      IsLink() const;
// Members
private:
  recls_info_t    m_info;
};