6 #ifndef _INC_CFileStatus_H
7 #define _INC_CFileStatus_H
78 void InitFileStatus();
81 #if defined(__linux__)
88 if (pszName ==
nullptr)
90 return pszName[0] ==
'.';
95 if (IsLinuxHidden(pszName))
129 return cValT::Compare(MakeFatTime(t1.GetTime()), MakeFatTime(t2.GetTime()));
140 if (!IsSameChangeFileTime(rFileStatus.m_timeChange))
142 if (m_Size != rFileStatus.m_Size)
149 if (pFileStatus ==
nullptr)
151 return IsFileEqualTo(*pFileStatus);
156 return(m_Attributes & dwAttrMask) ? true :
false;
182 HRESULT hRes = ReadFileStatus2(pszFilePath,
nullptr,
true);
188 return ReadFileStatus2(pszFilePath,
this, bFollowLink);
#define GRAYCORE_LINK
Definition: GrayCore.h:47
#define GRAYCALL
declare calling convention for static functions so everyone knows the arg passing scheme....
Definition: GrayCore.h:36
#define SUCCEEDED(x)
Definition: HResult.h:29
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
struct stat cFileStatusSys
Definition: cFileStatus.h:23
Definition: cFileStatus.h:58
bool isAttrHidden() const noexcept
Definition: cFileStatus.h:162
static bool IsLinuxHidden(const FILECHAR_t *pszName) noexcept
Definition: cFileStatus.h:85
static bool __stdcall Exists(const FILECHAR_t *pszFilePath)
Definition: cFileStatus.h:179
bool IsAttrMask(FILEATTR_MASK_t dwAttrMask=FILEATTR_ReadOnly) const noexcept
Definition: cFileStatus.h:153
bool IsSameChangeFileTime(const cTimeFile &t2) const noexcept
(accurate to 2 seconds)
Definition: cFileStatus.h:116
bool IsSameChangeTime(const cTimeInt &t2) const noexcept
Definition: cFileStatus.h:131
static COMPARE_t __stdcall CompareChangeTime(const cTimeInt &t1, const cTimeInt &t2) noexcept
Definition: cFileStatus.h:126
bool IsFileEqualTo(const THIS_t *pFileStatus) const noexcept
Definition: cFileStatus.h:146
cTimeFile m_timeChange
m_mtime = real world time/date of last modification. (FAT32 only accurate to 2 seconds) // All OS sup...
Definition: cFileStatus.h:69
FILE_SIZE_t GetFileLength() const noexcept
Definition: cFileStatus.h:167
bool isAttrDir() const noexcept
Definition: cFileStatus.h:158
FILEATTR_MASK_t m_Attributes
Mask of FILEATTR_TYPE_ attribute bits. FILEATTR_None.
Definition: cFileStatus.h:72
cTimeFile m_timeCreate
m_ctime = (may not be supported by file system).
Definition: cFileStatus.h:68
bool IsFileEqualTo(const THIS_t &rFileStatus) const noexcept
Definition: cFileStatus.h:136
bool UpdateLinuxHidden(const FILECHAR_t *pszName) noexcept
Definition: cFileStatus.h:92
static TIMESEC_t __stdcall MakeFatTime(TIMESEC_t tTime) noexcept
Definition: cFileStatus.h:121
bool isFileValid() const noexcept
Definition: cFileStatus.h:103
HRESULT ReadFileStatus(const FILECHAR_t *pszFilePath, bool bFollowLink=false)
Definition: cFileStatus.h:186
FILE_SIZE_t m_Size
file size in bytes. size_t. not always accurate for directories. (-1)
Definition: cFileStatus.h:71
cTimeFile m_timeLastAccess
m_atime = time of last access/Open. (For Caching). (may not be supported by file system)
Definition: cFileStatus.h:70
static COMPARE_t __stdcall CompareChangeFileTime(const cTimeFile &t1, const cTimeFile &t2)
(accurate to 2 seconds)
Definition: cFileStatus.h:111
Definition: cTimeFile.h:31
FILETIME_t get_FAT32() const noexcept
Definition: cTimeFile.h:119
FILETIME_t get_Val() const noexcept
Definition: cTimeFile.h:112
bool isValid() const noexcept
Definition: cTimeFile.h:128
< similar to the MFC CTime and cTimeSpan, not as accurate or large ranged as COleDateTime
Definition: cTimeInt.h:101
< The main namespace for all Core functions.
Definition: GrayCore.cpp:14
int COMPARE_t
result of compare. 0=same, 1=a>b, -1=a<b
Definition: cValT.h:17
FILEATTR_TYPE_
Definition: cFileStatus.h:35
@ FILEATTR_Link
FILE_ATTRIBUTE_REPARSE_POINT = a link. This file doesn't really exist locally but is listed in the di...
Definition: cFileStatus.h:52
@ FILEATTR_Hidden
FILE_ATTRIBUTE_HIDDEN. linux starts with .
Definition: cFileStatus.h:40
@ FILEATTR_Volume
FILE_ATTRIBUTE_DEVICE = some sort of device. not a file or dir. e.g. COM1.
Definition: cFileStatus.h:47
@ FILEATTR_ReadOnly
FILE_ATTRIBUTE_READONLY. linux permissions for user ?
Definition: cFileStatus.h:39
@ FILEATTR_Archive
FILE_ATTRIBUTE_ARCHIVE = this has been changed. (needs to be archived) not yet backed up.
Definition: cFileStatus.h:46
@ FILEATTR_NormalMask
(FILEATTR_ReadOnly|FILEATTR_Hidden|FILEATTR_System)
Definition: cFileStatus.h:43
@ FILEATTR_Normal
FILE_ATTRIBUTE_NORMAL = just a file.
Definition: cFileStatus.h:48
@ FILEATTR_Temporary
FILE_ATTRIBUTE_TEMPORARY.
Definition: cFileStatus.h:51
@ FILEATTR_None
Definition: cFileStatus.h:38
@ FILEATTR_Directory
FILE_ATTRIBUTE_DIRECTORY.
Definition: cFileStatus.h:45
@ FILEATTR_Compress
FILE_ATTRIBUTE_COMPRESSED. this is a file that will act like a ATTR_directory. (sort of)
Definition: cFileStatus.h:53
@ FILEATTR_System
FILE_ATTRIBUTE_SYSTEM.
Definition: cFileStatus.h:41
class __DECL_IMPORT cFileStatus
Definition: cFile.h:79
char FILECHAR_t
a UTF8 char in a file name. like TCHAR
Definition: FileName.h:22
time_t TIMESEC_t
absolute seconds since January 1, 1970. (GMT?)(signed) NOTE: Changing to __time64_t just adds more ra...
Definition: cTimeUnits.h:23
UINT32 FILEATTR_MASK_t
Definition: cFileStatus.h:55
UINT64 FILE_SIZE_t
similar to STREAM_POS_t size_t
Definition: cFileStatus.h:31
@ COMPARE_Equal
VARCMP_EQ.
Definition: cValT.h:23
static COMPARE_t Compare(const TYPE &a, const TYPE &b) noexcept
Definition: cValT.h:46