From 8b907953ce4523d20e4379e4e2c18f88f44645e5 Mon Sep 17 00:00:00 2001 From: "Valeriano A.R" Date: Fri, 24 May 2013 02:00:10 +0200 Subject: [PATCH] Directory checking. --- filenode.c | 8 ++++++++ filenode.h | 1 + main.c | 23 +++++++++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/filenode.c b/filenode.c index 68eeb3e..9b32f42 100644 --- a/filenode.c +++ b/filenode.c @@ -374,6 +374,10 @@ FileNode *FileNode_Build(char *path){ int FileNode_Build_Iterate(char *path,char *name,void *d){ FileNode *file,*fn_padre=d;; + if(!strcmp(name,FileNode_Filename)){ + return(0); + } + file=FileNode_Build(path); FileNode_AddChild(fn_padre,file); @@ -484,6 +488,10 @@ int FileNode_Refresh_Iterate(char *path,char *name,void *d){ FileNode *fn=d; FileNode *fn_child; + if(!strcmp(name,FileNode_Filename)){ + return(0); + } + // Buscar el fichero entre los del arbol fn_child=fn->child; while(fn_child){ diff --git a/filenode.h b/filenode.h index 8230840..b85f3a0 100644 --- a/filenode.h +++ b/filenode.h @@ -1,6 +1,7 @@ #ifndef _FILENODE_H_ #define _FILENODE_H_ +#define FileNode_Filename "nodesFile.fs" #define FileNode_Version 4 diff --git a/main.c b/main.c index 6fa6250..dc683b8 100644 --- a/main.c +++ b/main.c @@ -12,6 +12,7 @@ void help(char *exe){ printf("%s scan [dir] [tree] \n",exe); printf("%s rescan [dir] [tree] \n",exe); printf("%s read [file] [tree]\n",exe); + printf("%s dir [dir]\n",exe); } int main(int argc,char *argv[]){ @@ -59,6 +60,28 @@ int main(int argc,char *argv[]){ FileNode *fn; fn=FileNode_Load(argv[2]); if(fn)FileNode_Print(fn); + }else + if(!strcmp(argv[1],"dir") && argc==3){ + // Leer informacion de dir + char *path=argv[2]; + char dirNodesFile[4092]; + FileNode *fn; + + printf("Checking Directory.. %s\n",path); + if(File_ExistePath(path) && File_EsDirectorio(path)){ + // Get the FileNode from the dir + snprintf(dirNodesFile,4092,"%s/"FileNode_Filename,path); + fn=FileNode_Load(dirNodesFile); + if(fn){ + fn=FileNode_Refresh(fn,path); + }else{ + fn=FileNode_Build(path); + } + if(fn){ + FileNode_Print(fn); + FileNode_Save(fn,dirNodesFile); + } + } }else{ help(argv[0]); }