uLib  User mode C/C++ extended API library for Win32 programmers.
FileEntry Class Reference

#include <uLib/FileDir.h>

Inheritance diagram for FileEntry:
LIST_ENTRY

Detailed Description

File entry. LIST_ENTRY descendant. Subject of DLinkList.
These entries are created by DirEntry::Scan(), via NewFileEntry().
Scan() is invoked by DirEntry::ScanDir(), the main call point.

Definition at line 126 of file FileDir.h.

Public Data

CSTR Name
 
CSTR Ext
 
PDirEntry pDir
 
PVOID pData
 
- Public Data inherited from LIST_ENTRY
struct _LIST_ENTRY * Flink
 
struct _LIST_ENTRY * Blink
 

Static Public Attributes

static PFnFileAddAction AddAction = NULL
 
static PFnFileAction DelAction = NULL
 

Public Functions

 FileEntry (LPWIN32_FIND_DATA pFd, PDirEntry Dir, PScanDirCtx pCtx=NULL)
 
 FileEntry (CSTR Name, PDirEntry Dir, PScanDirCtx pCtx=NULL)
 
virtual ~FileEntry ()
 
CSTR Rename (CSTR newName)
 
UINT GetPathName (TSTR Buffer, UINT BufLen)
 
bool GetFindData (LPWIN32_FIND_DATA pData)
 
bool RemoveFromParent ()
 

Static Public Member Functions

static bool __stdcall _delete (PLIST_ENTRY Entry, void *pData)
 
static bool __stdcall _dump (PLIST_ENTRY Entry, void *pData)
 

Constructor & Destructor Documentation

◆ FileEntry() [1/2]

FileEntry::FileEntry ( LPWIN32_FIND_DATA  pFd,
PDirEntry  Dir,
PScanDirCtx  pCtx = NULL 
)

Normal constructor.

Definition at line 144 of file FileDir.cpp.

◆ FileEntry() [2/2]

FileEntry::FileEntry ( CSTR  Name,
PDirEntry  Dir,
PScanDirCtx  pCtx = NULL 
)

Abbreviated constructor.

Definition at line 137 of file FileDir.cpp.

◆ ~FileEntry()

FileEntry::~FileEntry ( )
virtual

Optionally calls your DelAction so you can perform any
additional clean-up, then deallocates internal entry data.

Definition at line 157 of file FileDir.cpp.

Member Function Documentation

◆ Rename()

CSTR FileEntry::Rename ( CSTR  newName)

Rename updates Name and Ext ..

Note: The entry is only renamed in RAM, the file system isn't touched.
On failure Rename returns NULL, and Name/Ext are kept.

Definition at line 171 of file FileDir.cpp.

◆ GetPathName()

UINT FileEntry::GetPathName ( TSTR  Buffer,
UINT  BufLen 
)

GetPathName builds the full path name (from BaseDir).
Returns nr of chars copied to the buffer, or 0 on failure.

Definition at line 193 of file FileDir.cpp.

◆ GetFindData()

bool FileEntry::GetFindData ( LPWIN32_FIND_DATA  pData)

(Re)fetch the file system data for this entry.
Return true on success.

Definition at line 210 of file FileDir.cpp.

◆ RemoveFromParent()

bool FileEntry::RemoveFromParent ( )

Remove this entry from it's containing DLinkList.
Return true on success.

Definition at line 184 of file FileDir.cpp.

◆ _delete()

bool __stdcall FileEntry::_delete ( PLIST_ENTRY  Entry,
void *  pData 
)
static

_delete is used by DirEntry for recursive deletion.

[internal] It deletes this instance, but doesn't remove it from the parent's DirEntry::Files list.

Definition at line 164 of file FileDir.cpp.

◆ _dump()

bool __stdcall FileEntry::_dump ( PLIST_ENTRY  Entry,
void *  pData 
)
static

DLinkList::ForEach callback to dump file entry to debugger.

Definition at line 74 of file FileDir.cpp.

Member Data Documentation

◆ Name

CSTR FileEntry::Name

File "name.ext" (duplicate).

Definition at line 128 of file FileDir.h.

◆ Ext

CSTR FileEntry::Ext

Pointer to extension part of Name (with dot).

Definition at line 129 of file FileDir.h.

◆ pDir

PDirEntry FileEntry::pDir

Back pointer to containing directory.

Definition at line 136 of file FileDir.h.

◆ pData

PVOID FileEntry::pData

Arbitrary user data (e.g handled by Action).

Definition at line 137 of file FileDir.h.

◆ AddAction

PFnFileAddAction FileEntry::AddAction = NULL
static

Pointer to your action callback for added files, or NULL.

Definition at line 143 of file FileDir.h.

◆ DelAction

PFnFileAction FileEntry::DelAction = NULL
static

Pointer to your action callback for deleting file entries, or NULL.
Note: Caveat, DelAction gets a NULL pCtx (for technical reasons).

Definition at line 148 of file FileDir.h.


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