File synchronization actions building fixes and running.

This commit is contained in:
2013-06-05 22:48:30 +02:00
parent 15eff445f9
commit 4e0ba1e714
9 changed files with 608 additions and 232 deletions

View File

@@ -243,13 +243,13 @@ void File_IterateDir(char *path,
{
int handle;
struct _finddata_t fileinfo;
char f_path[512];
char f_path[MaxPath];
int fin=0;
int findnext_rc;
char path_aux[512];
char path_aux[MaxPath];
char *ptr;
snprintf(path_aux,512,
snprintf(path_aux,MaxPath,
"%s/*",path);
handle=_findfirst(path_aux,&fileinfo);
if(handle==-1)
@@ -278,7 +278,7 @@ void File_IterateDir(char *path,
{
DIR *directorio;
struct dirent *entidad_dir;
char f_path[512];
char f_path[MaxPath];
int fin=0;
char *ptr;
@@ -295,7 +295,7 @@ void File_IterateDir(char *path,
{
// A partir de aqui hay un fichero
// (o directorio)
snprintf(f_path,512,
snprintf(f_path,MaxPath,
"%s/%s",path,entidad_dir->d_name);
fin=func(f_path,
entidad_dir->d_name,
@@ -309,4 +309,48 @@ void File_IterateDir(char *path,
void File_Borrar(char *path){
unlink(path);
}
void File_BorrarDirectorio(char *path){
rmdir(path);
}
#define MaxBuffer 16384
int File_Copiar( const char *pathOrig,const char *pathDest){
FILE *fOrig,*fDest;
char buffer[MaxBuffer];
int readLen=0;
int writeLen=0;
int ok=0;
if((fOrig=fopen(pathOrig,"rb"))==NULL){
return 0;
}
if((fDest=fopen(pathDest,"wb"))==NULL){
return 0;
}
do{
readLen=fread(&buffer,1,MaxBuffer,fOrig);
if(readLen>0){
writeLen=fwrite(&buffer,1,readLen,fDest);
if(writeLen!=readLen){
// Error
fclose(fOrig);
fclose(fDest);
return 0;
}
}
}while(readLen==MaxBuffer);
if(feof(fOrig)){
ok=1;
}
fclose(fOrig);
fclose(fDest);
return ok;
}