home *** CD-ROM | disk | FTP | other *** search
- #include <exec/types.h>
- #include <stdio.h>
- #include <stdlib.h>
-
-
- char FileName[200];
- char DirName[200];
- char PathName[200];
- char DestName[200];
- void rmslash(char *str);
- void sr(char *str);
- void WriteToT(char *str);
- int TLock(char *str);
- void MoveFiles(char *Dir,char *Path,char *Dest);
- main(int argc,char *argv[])
- {
- register int i;
- if(argc!=4)
- {
- printf("AEMove version 1.0 written by Joseph Hodge\n");
- printf("Usage: AEMove <dirpath> <sourcepath> <destpath>\n");
- printf(" ie: AEMove bbs:elite/dir4 dh3: dh3:Elite\n");
- printf("\n");
- printf("This is an AmiExpress 1.1w+ utility\n");
- printf("WARNING only moves files to same Partition\n");
- exit(0);
- }
-
- strcpy(DirName,argv[1]);
- strcpy(PathName,argv[2]);
- strcpy(DestName,argv[3]);
- sr(DirName);
- sr(PathName);
- sr(DestName);
-
- rmslash(PathName);
- rmslash(DestName);
-
- if(!TLock(DirName))
- {
- printf("Error, Can't locate dir file %s\n",DirName);
- exit(0);
- }
- if(!TLock(PathName))
- {
- printf("Error, Can't locate source %s\n",PathName);
- exit(0);
- }
- if(!TLock(DestName))
- {
- printf("Error, Can't locate destination path %s\n",DestName);
- exit(0);
- }
-
- MoveFiles(DirName,PathName,DestName);
- }
-
- void MoveFiles(char *Dir,char *Path,char *Dest)
- {
- FILE *fi;
- char image[200];
- char D[200];
- char P[200];
- char OFName[200];
- char NFName[200];
- long Errors=0L;
- long Found=0L;
- long Lost=0L;
- strcpy(P,Path);
- strcpy(D,Dest);
-
- if(P[strlen(P)-1]!='/' && P[strlen(P)-1]!=':')
- {
- strcat(P,"/");
- }
- if(D[strlen(D)-1]!='/' && D[strlen(D)-1]!=':')
- {
- strcat(D,"/");
- }
-
- fi=fopen(Dir,"r");
- if(fi==NULL)
- {
- printf("Error!!!! could not open Dir files\n\n");
- exit(0);
- }
- while(fgets(image,90,fi)!=NULL)
- {
- if(image[0]>' ')
- {
- image[13]='\0';
- sr(image);
- sprintf(OFName,"%s%s",P,image);
- sprintf(NFName,"%s%s",D,image);
- if(TLock(OFName))
- {
- Found +=1L;
- if(Rename(OFName,NFName))
- {
- printf("-->Moved %s to %s\n",OFName,NFName);
- }
- else
- {
- printf("-->Error could not move %s\n\n",OFName);
- Errors +=1L;
- }
-
- }
- else
- {
- Lost +=1L;
- printf("** Could not locate %s\n",image);
- WriteToT(image);
- }
- }
- }
- fclose(fi);
- printf("Results: %ld Found, %ld Errors, %ld Lost\n\n",Found,Errors,Lost);
-
- }
-
- void WriteToT(char *str)
- {
- FILE *fi;
- static int i=0;
- fi=fopen("T:LostFiles","a");
- if(!i)
- {
- fprintf(fi,"********************************************\n");
- i=1;
- }
- fprintf(fi,"%s\n",str);
- fclose(fi);
- }
-
- void sr(char *str)
- {
- register int i;
- i=strlen(str)-1;
- while(i>-1)
- {
- if(*(str+i)<=32) *(str+i)='\0'; else break;
- i--;
- }
- }
-
- void rmslash(char *str)
- {
- register int i;
- i=strlen(str)-1;
- while(i>-1)
- {
- if(*(str+i)=='/' || *(str+i)<=32) *(str+i)='\0'; else break;
- i--;
- }
- }
- #define ACCESS_READ -2
- int TLock(char *str)
- {
- long lock;
- if(lock=Lock(str,ACCESS_READ))
- {
- UnLock(lock); return(1);
- }
- return(0);
- }