PTLib  Version 2.14.3
 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
unsigned GetTraceContextIdentifier () const
 Get PTRACE context identifier. More...
 
void SetTraceContextIdentifier (unsigned id)
 
void GetTraceContextIdentifier (PObject &obj)
 
void GetTraceContextIdentifier (PObject *obj)
 
void SetTraceContextIdentifier (const PObject &obj)
 
void SetTraceContextIdentifier (const PObject *obj)
 
virtual ~PObject ()
 
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 const char * GetClass (unsigned ancestor=0) const
 Get the current dynamic type of the object instance. More...
 
PBoolean IsClass (const char *cls) const
 
virtual PBoolean InternalIsDescendant (const char *clsName) const
 Determine if the dynamic type of the current instance is a descendent of the specified class. More...
 
__inline const PObjectPTraceObjectInstance () const
 
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 Comparison InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size)
 Internal function caled from CompareObjectMemoryDirect() More...
 
static const char * Class ()
 Get the name of the class as a C string. More...
 
static __inline const PObjectPTraceObjectInstance (const char *)
 
static __inline const PObjectPTraceObjectInstance (const PObject *obj)
 
- 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
 
- Friends inherited from PObject

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: