Directory checking.
This commit is contained in:
@@ -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){
|
||||||
|
|||||||
@@ -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
23
main.c
@@ -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]);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user