#ifndef EFSW_FILEINFO_HPP #define EFSW_FILEINFO_HPP #include #include #include #include namespace efsw { class FileInfo { public: static bool exists( const std::string& filePath ); static bool isLink( const std::string& filePath ); static bool inodeSupported(); FileInfo(); explicit FileInfo( const std::string& filepath ); FileInfo( const std::string& filepath, bool linkInfo ); FileInfo( const FileInfo& ) = default; bool operator==( const FileInfo& Other ) const; bool operator!=( const FileInfo& Other ) const; FileInfo& operator=( const FileInfo& Other ); bool isDirectory() const; bool isRegularFile() const; bool isReadable() const; bool sameInode( const FileInfo& Other ) const; bool isLink() const; std::string linksTo(); bool exists(); void getInfo(); void getRealInfo(); std::string Filepath; Uint64 ModificationTime; Uint64 Size; Uint32 OwnerId; Uint32 GroupId; Uint32 Permissions; Uint64 Inode; }; typedef std::map FileInfoMap; typedef std::list FileInfoList; typedef std::list> MovedList; } // namespace efsw #endif