Directory checking.

This commit is contained in:
2013-05-24 02:00:10 +02:00
parent aeb408cfb1
commit 8b907953ce
3 changed files with 32 additions and 0 deletions

View File

@@ -374,6 +374,10 @@ FileNode *FileNode_Build(char *path){
int FileNode_Build_Iterate(char *path,char *name,void *d){ int FileNode_Build_Iterate(char *path,char *name,void *d){
FileNode *file,*fn_padre=d;; FileNode *file,*fn_padre=d;;
if(!strcmp(name,FileNode_Filename)){
return(0);
}
file=FileNode_Build(path); file=FileNode_Build(path);
FileNode_AddChild(fn_padre,file); FileNode_AddChild(fn_padre,file);
@@ -484,6 +488,10 @@ int FileNode_Refresh_Iterate(char *path,char *name,void *d){
FileNode *fn=d; FileNode *fn=d;
FileNode *fn_child; FileNode *fn_child;
if(!strcmp(name,FileNode_Filename)){
return(0);
}
// Buscar el fichero entre los del arbol // Buscar el fichero entre los del arbol
fn_child=fn->child; fn_child=fn->child;
while(fn_child){ while(fn_child){

View File

@@ -1,6 +1,7 @@
#ifndef _FILENODE_H_ #ifndef _FILENODE_H_
#define _FILENODE_H_ #define _FILENODE_H_
#define FileNode_Filename "nodesFile.fs"
#define FileNode_Version 4 #define FileNode_Version 4

23
main.c
View File

@@ -12,6 +12,7 @@ void help(char *exe){
printf("%s scan [dir] [tree] \n",exe); printf("%s scan [dir] [tree] \n",exe);
printf("%s rescan [dir] [tree] \n",exe); printf("%s rescan [dir] [tree] \n",exe);
printf("%s read [file] [tree]\n",exe); printf("%s read [file] [tree]\n",exe);
printf("%s dir [dir]\n",exe);
} }
int main(int argc,char *argv[]){ int main(int argc,char *argv[]){
@@ -59,6 +60,28 @@ int main(int argc,char *argv[]){
FileNode *fn; FileNode *fn;
fn=FileNode_Load(argv[2]); fn=FileNode_Load(argv[2]);
if(fn)FileNode_Print(fn); 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{ }else{
help(argv[0]); help(argv[0]);
} }