PTLib  Version 2.18.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PFileInfo Class Reference

Class containing the system information on a file path. More...

#include <pdirect.h>

Inheritance diagram for PFileInfo:
Collaboration diagram for PFileInfo:

Public Member Functions

 P_DECLARE_BITWISE_ENUM_EX (FileTypes, 10,(NoFileType, RegularFile, SymbolicLink, SubDirectory, ParentDirectory, CurrentDirectory, CharDevice, BlockDevice, Fifo, SocketDevice, UnknownFileType), AllFiles=0x3ff, DefaultSearch=RegularFile|SymbolicLink|SubDirectory)
 All types that a particular file path may be. More...
 
 P_DECLARE_BITWISE_ENUM_EX (Permissions, 9,(NoPermissions, WorldExecute, WorldWrite, WorldRead, GroupExecute, GroupWrite, GroupRead, UserExecute, UserWrite, UserRead), AllPermissions=0x1ff, DefaultPerms=UserRead|UserWrite|GroupRead|WorldRead, DefaultDirPerms=DefaultPerms|UserExecute|GroupExecute|WorldExecute)
 File access permissions for the file. More...
 
- Public Member Functions inherited from PObject
__inline unsigned GetTraceContextIdentifier () const
 Get PTRACE context identifier. More...
 
__inline void SetTraceContextIdentifier (unsigned id)
 
__inline void SetTraceContextIdentifier (const PObject &obj)
 
__inline void SetTraceContextIdentifier (const PObject *obj)
 
__inline void CopyTraceContextIdentifier (PObject &obj) const
 
__inline void CopyTraceContextIdentifier (PObject *obj) const
 
virtual ~PObject ()
 
__inline const char * GetClass () const
 
__inline bool IsClass (const char *name) const
 
__inline const PObjectPTraceObjectInstance () const
 
virtual PObjectClone () const
 Create a copy of the class on the heap. More...
 
template<class CLS >
CLS * CloneAs () const
 As for Clone() but converts to specified type. More...
 
virtual PINDEX HashFunction () const
 This function yields a hash value required by the PDictionary class. More...
 
virtual Comparison Compare (const PObject &obj) const
 Compare the two objects and return their relative rank. More...
 
virtual Comparison CompareObjectMemoryDirect (const PObject &obj) const
 Determine the byte wise comparison of two objects. More...
 
bool operator== (const PObject &obj) const
 Compare the two objects. More...
 
bool operator!= (const PObject &obj) const
 Compare the two objects. More...
 
bool operator< (const PObject &obj) const
 Compare the two objects. More...
 
bool operator> (const PObject &obj) const
 Compare the two objects. More...
 
bool operator<= (const PObject &obj) const
 Compare the two objects. More...
 
bool operator>= (const PObject &obj) const
 Compare the two objects. More...
 
virtual void PrintOn (ostream &strm) const
 Output the contents of the object to the stream. More...
 
virtual void ReadFrom (istream &strm)
 Input the contents of the object from the stream. More...
 

Public Attributes

FileTypes type
 File type for this file. Only one bit is set at a time here. More...
 
PTime created
 Time of file creation of the file. More...
 
PTime modified
 Time of last modifiaction of the file. More...
 
PTime accessed
 Time of last access to the file. More...
 
PUInt64 size
 Size of the file in bytes. More...
 
Permissions permissions
 A bit mask of all the file acces permissions. More...
 
bool hidden
 File is a hidden file. More...
 

Additional Inherited Members

- Public Types inherited from PObject
enum  Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 }
 Result of the comparison operation performed by the Compare() function. More...
 
- Static Public Member Functions inherited from PObject
static __inline void CopyTraceContextIdentifier (PObject &to, const PObject &from)
 
static __inline void CopyTraceContextIdentifier (PObject &to, const PObject *from)
 
static __inline void CopyTraceContextIdentifier (PObject *to, const PObject &from)
 
static __inline void CopyTraceContextIdentifier (PObject *to, const PObject *from)
 
static __inline const char * Class ()
 
static __inline const PObjectPTraceObjectInstance (const char *)
 
static __inline const PObjectPTraceObjectInstance (const PObject *obj)
 
template<typename T >
static Comparison Compare2 (T v1, T v2)
 Compare two types, returning Comparison type. More...
 
static Comparison InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size)
 Internal function caled from CompareObjectMemoryDirect() More...
 
- Protected Member Functions inherited from PObject
 PObject ()
 Constructor for PObject, made protected so cannot ever create one on its own. More...
 
- Protected Attributes inherited from PObject
unsigned m_traceContextIdentifier
 

Detailed Description

Class containing the system information on a file path.

Information can be obtained on any directory entry event if it is not a "file" in the strictest sense. Sub-directories, devices etc may also have information retrieved.

Member Function Documentation

PFileInfo::P_DECLARE_BITWISE_ENUM_EX ( FileTypes  ,
10  ,
(NoFileType, RegularFile, SymbolicLink, SubDirectory, ParentDirectory, CurrentDirectory, CharDevice, BlockDevice, Fifo, SocketDevice, UnknownFileType)  ,
AllFiles  = 0x3ff,
DefaultSearch  = RegularFile|SymbolicLink|SubDirectory 
)

All types that a particular file path may be.

Not all platforms support all of the file types. For example under DOS no file may be of the type SymbolicLink.

PFileInfo::P_DECLARE_BITWISE_ENUM_EX ( Permissions  ,
,
(NoPermissions, WorldExecute, WorldWrite, WorldRead, GroupExecute, GroupWrite, GroupRead, UserExecute, UserWrite, UserRead)  ,
AllPermissions  = 0x1ff,
DefaultPerms  = UserRead|UserWrite|GroupRead|WorldRead,
DefaultDirPerms  = DefaultPerms|UserExecute|GroupExecute|WorldExecute 
)

File access permissions for the file.

Member Data Documentation

PTime PFileInfo::accessed

Time of last access to the file.

Not all platforms support a separate access time in which case the last modified time is returned.

PTime PFileInfo::created

Time of file creation of the file.

Not all platforms support a separate creation time in which case the last modified time is returned.

bool PFileInfo::hidden

File is a hidden file.

What constitutes a hidden file is platform dependent, for example under unix it is a file beginning with a '.' character while under MS-DOS there is a file system attribute for it.

PTime PFileInfo::modified

Time of last modifiaction of the file.

Permissions PFileInfo::permissions

A bit mask of all the file acces permissions.

See the Permissions enum# for the possible bit values.

Not all platforms support all permissions.

PUInt64 PFileInfo::size

Size of the file in bytes.

This is a quadword or 8 byte value to allow for files greater than 4 gigabytes.

FileTypes PFileInfo::type

File type for this file. Only one bit is set at a time here.


The documentation for this class was generated from the following file: