Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
Gray::cFileStatus Class Reference

#include <cFileStatus.h>

Inheritance diagram for Gray::cFileStatus:
Gray::cFileFindEntry

Public Member Functions

 cFileStatus ()
 
 cFileStatus (const FILECHAR_t *pszFilePath)
 
void InitFileStatus ()
 
void InitFileStatus (const cFileStatusSys &statusSys)
 
bool UpdateLinuxHidden (const FILECHAR_t *pszName) noexcept
 
bool isFileValid () const noexcept
 
bool IsSameChangeFileTime (const cTimeFile &t2) const noexcept
 (accurate to 2 seconds) More...
 
bool IsSameChangeTime (const cTimeInt &t2) const noexcept
 
bool IsFileEqualTo (const THIS_t &rFileStatus) const noexcept
 
bool IsFileEqualTo (const THIS_t *pFileStatus) const noexcept
 
bool IsAttrMask (FILEATTR_MASK_t dwAttrMask=FILEATTR_ReadOnly) const noexcept
 
bool isAttrDir () const noexcept
 
bool isAttrHidden () const noexcept
 
FILE_SIZE_t GetFileLength () const noexcept
 
HRESULT ReadFileStatus (const FILECHAR_t *pszFilePath, bool bFollowLink=false)
 

Static Public Member Functions

static bool IsLinuxHidden (const FILECHAR_t *pszName) noexcept
 
static COMPARE_t __stdcall CompareChangeFileTime (const cTimeFile &t1, const cTimeFile &t2)
 (accurate to 2 seconds) More...
 
static TIMESEC_t __stdcall MakeFatTime (TIMESEC_t tTime) noexcept
 
static COMPARE_t __stdcall CompareChangeTime (const cTimeInt &t1, const cTimeInt &t2) noexcept
 
static HRESULT __stdcall WriteFileAttributes (const FILECHAR_t *pszFilePath, FILEATTR_MASK_t dwAttributes)
 
static HRESULT __stdcall WriteFileTimes (const FILECHAR_t *pszFilePath, const cTimeFile *pTimeCreate, const cTimeFile *pTimeChange=nullptr)
 
static HRESULT __stdcall WriteFileTimes (const FILECHAR_t *pszFilePath, const cFileStatus &rFileStatus)
 
static HRESULT __stdcall ReadFileStatus2 (const FILECHAR_t *pszFilePath, cFileStatus *pFileStatus=nullptr, bool bFollowLink=false)
 
static bool __stdcall Exists (const FILECHAR_t *pszFilePath)
 

Public Attributes

cTimeFile m_timeCreate
 m_ctime = (may not be supported by file system). More...
 
cTimeFile m_timeChange
 m_mtime = real world time/date of last modification. (FAT32 only accurate to 2 seconds) // All OS support this. More...
 
cTimeFile m_timeLastAccess
 m_atime = time of last access/Open. (For Caching). (may not be supported by file system) More...
 
FILE_SIZE_t m_Size
 file size in bytes. size_t. not always accurate for directories. (-1) More...
 
FILEATTR_MASK_t m_Attributes
 Mask of FILEATTR_TYPE_ attribute bits. FILEATTR_None. More...
 

Detailed Description

Attributes for a file (or directory) in a directory. Does NOT store the name. Support of fields varies based on file system. FAT,FAT32,NTFS, etc Similar to ANSI (or POSIX) stat() _stat Similar to MFC cFileStatus

Constructor & Destructor Documentation

◆ cFileStatus() [1/2]

Gray::cFileStatus::cFileStatus ( )

◆ cFileStatus() [2/2]

Gray::cFileStatus::cFileStatus ( const FILECHAR_t pszFilePath)
Note
use isFileValid() to find if this is valid.

Member Function Documentation

◆ CompareChangeFileTime()

static COMPARE_t __stdcall Gray::cFileStatus::CompareChangeFileTime ( const cTimeFile t1,
const cTimeFile t2 
)
inlinestatic

(accurate to 2 seconds)

~2 sec accurate for FAT32

◆ CompareChangeTime()

static COMPARE_t __stdcall Gray::cFileStatus::CompareChangeTime ( const cTimeInt t1,
const cTimeInt t2 
)
inlinestaticnoexcept

~2 second accurate for FAT32

◆ Exists()

static bool __stdcall Gray::cFileStatus::Exists ( const FILECHAR_t pszFilePath)
inlinestatic

boolean true if this file exists? I can read it. Does not mean I can write to it.

◆ GetFileLength()

FILE_SIZE_t Gray::cFileStatus::GetFileLength ( ) const
inlinenoexcept

get the 64 bit length of the file. -1 = size not available for directories.

◆ InitFileStatus() [1/2]

void Gray::cFileStatus::InitFileStatus ( )

◆ InitFileStatus() [2/2]

void Gray::cFileStatus::InitFileStatus ( const cFileStatusSys statusSys)

convert from OS native format.

◆ isAttrDir()

bool Gray::cFileStatus::isAttrDir ( ) const
inlinenoexcept

◆ isAttrHidden()

bool Gray::cFileStatus::isAttrHidden ( ) const
inlinenoexcept

◆ IsAttrMask()

bool Gray::cFileStatus::IsAttrMask ( FILEATTR_MASK_t  dwAttrMask = FILEATTR_ReadOnly) const
inlinenoexcept

have this attribute? e.g. FILEATTR_ReadOnly

◆ IsFileEqualTo() [1/2]

bool Gray::cFileStatus::IsFileEqualTo ( const THIS_t rFileStatus) const
inlinenoexcept

◆ IsFileEqualTo() [2/2]

bool Gray::cFileStatus::IsFileEqualTo ( const THIS_t pFileStatus) const
inlinenoexcept

do these 2 files have the same attributes.

◆ isFileValid()

bool Gray::cFileStatus::isFileValid ( ) const
inlinenoexcept

did i get file data ? is this a file vs a device ?

Returns
false = bad (or not a) file like 'com1:' 'lpt:' etc.
Note
asking for a 'devicename' is BAD! i.e. http://myserver/com5.txt (this will trap that!)

◆ IsLinuxHidden()

static bool Gray::cFileStatus::IsLinuxHidden ( const FILECHAR_t pszName)
inlinestaticnoexcept

Is this a hidden file on linux (NFS) ?

◆ IsSameChangeFileTime()

bool Gray::cFileStatus::IsSameChangeFileTime ( const cTimeFile t2) const
inlinenoexcept

(accurate to 2 seconds)

~2 sec accurate for FAT32

◆ IsSameChangeTime()

bool Gray::cFileStatus::IsSameChangeTime ( const cTimeInt t2) const
inlinenoexcept

◆ MakeFatTime()

static TIMESEC_t __stdcall Gray::cFileStatus::MakeFatTime ( TIMESEC_t  tTime)
inlinestaticnoexcept

(accurate to 2 seconds)

◆ ReadFileStatus()

HRESULT Gray::cFileStatus::ReadFileStatus ( const FILECHAR_t pszFilePath,
bool  bFollowLink = false 
)
inline

◆ ReadFileStatus2()

HRESULT GRAYCALL Gray::cFileStatus::ReadFileStatus2 ( const FILECHAR_t pszFilePath,
cFileStatus pFileStatus = nullptr,
bool  bFollowLink = false 
)
static

get info/attributes/status on a single file or dir. Similar to the MFC CFileFind. Are wildcards allowed ??

Note
cFilePath::IsFilePathRoot will fail.
  • pFileStatus is allowed to be nullptr
Returns
S_OK

◆ UpdateLinuxHidden()

bool Gray::cFileStatus::UpdateLinuxHidden ( const FILECHAR_t pszName)
inlinenoexcept

Is this a linux (NFS) hidden file name ? starts with dot.

◆ WriteFileAttributes()

HRESULT GRAYCALL Gray::cFileStatus::WriteFileAttributes ( const FILECHAR_t pszFilePath,
FILEATTR_MASK_t  dwAttributes 
)
static

Set attributes for a NON open file. dwAttributes = FILEATTR_Hidden, FILEATTR_ReadOnly

◆ WriteFileTimes() [1/2]

HRESULT GRAYCALL Gray::cFileStatus::WriteFileTimes ( const FILECHAR_t pszFilePath,
const cFileStatus rFileStatus 
)
static

◆ WriteFileTimes() [2/2]

HRESULT GRAYCALL Gray::cFileStatus::WriteFileTimes ( const FILECHAR_t pszFilePath,
const cTimeFile pTimeCreate,
const cTimeFile pTimeChange = nullptr 
)
static

Update the created/changed time for a file. (by name) (similar to 'touch' command) May have varying levels of support for OS, FAT, NTFS, NFS, etc

Member Data Documentation

◆ m_Attributes

FILEATTR_MASK_t Gray::cFileStatus::m_Attributes

Mask of FILEATTR_TYPE_ attribute bits. FILEATTR_None.

◆ m_Size

FILE_SIZE_t Gray::cFileStatus::m_Size

file size in bytes. size_t. not always accurate for directories. (-1)

◆ m_timeChange

cTimeFile Gray::cFileStatus::m_timeChange

m_mtime = real world time/date of last modification. (FAT32 only accurate to 2 seconds) // All OS support this.

◆ m_timeCreate

cTimeFile Gray::cFileStatus::m_timeCreate

m_ctime = (may not be supported by file system).

◆ m_timeLastAccess

cTimeFile Gray::cFileStatus::m_timeLastAccess

m_atime = time of last access/Open. (For Caching). (may not be supported by file system)


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