60 lines
1.3 KiB
C
60 lines
1.3 KiB
C
#ifndef _FILENODE_H_
|
|
#define _FILENODE_H_
|
|
|
|
#define FileNode_Filename "nodesFile.fs"
|
|
|
|
#define FileNode_Version 4
|
|
|
|
#define FileFlag_Root 1
|
|
#define FileFlag_Normal 2
|
|
#define FileFlag_Directory 4
|
|
#define FileFlag_HasSize 8
|
|
#define FileFlag_HastTime 16
|
|
#define FileFlag_HasCRC 32
|
|
#define FileFlag_MarkerForReview 1024
|
|
|
|
typedef enum {
|
|
FileStatus_None,
|
|
FileStatus_New,
|
|
FileStatus_Modified,
|
|
FileStatus_Deleted
|
|
} FileStatus;
|
|
|
|
typedef struct SFileNode {
|
|
char name[MaxFilename];
|
|
int flags;
|
|
FileStatus estado;
|
|
|
|
long long size;
|
|
unsigned long crc;
|
|
FileTime fileTime;
|
|
|
|
struct SFileNode *child;
|
|
int childCount;
|
|
|
|
struct SFileNode *next;
|
|
struct SFileNode *parent;
|
|
} FileNode;
|
|
|
|
FileNode *FileNode_Create();
|
|
void FileNode_Delete(FileNode *fileNode);
|
|
void FileNode_AddChild(FileNode *file, FileNode *file2);
|
|
|
|
char *FileNode_GetFullPath(FileNode *fileNode, char *basePath, char *path);
|
|
|
|
void FileNode_GetSize(FileNode *fileNode, char *file);
|
|
void FileNode_GetFecha(FileNode *fileNode, char *file);
|
|
void FileNode_GetCRC(FileNode *fileNode, char *file);
|
|
|
|
void FileNode_Save(FileNode *fileNode, char *fichero);
|
|
FileNode *FileNode_Load(char *fichero);
|
|
|
|
void FileNode_PrintNode(FileNode *fileNode);
|
|
void FileNode_Print(FileNode *fileNode);
|
|
|
|
FileNode *FileNode_Build(char *path);
|
|
|
|
FileNode *FileNode_Refresh(FileNode *file, char *path);
|
|
|
|
#endif
|