源代码如下:
/*Project:
*Author: fuweilin fuweilin@hotmail.com
*Date: 2005-1-28
*/
#include <stdio.h>
#include <conio.h>
#include <dir.h>
#include <io.h>
#include <dos.h>
#define TRUE 1;
#define FALSE 0;
char * path; /* path */
char * fileName; /* file */
void showInfo(void)
{
textbackground(BLUE);
clrscr();
window(15,2,65,12);
textbackground(YELLOW);
clrscr();
textcolor(RED);
clrscr();
cprintf("/n <DelFile>/n/n");
textcolor(RED);
cprintf("/rAuthor:FUWEILIN fuweilin@hotmail.com/n/n");
cprintf("/rDate :2005-1-28/n/n");
cprintf("/rVer :1.0 Build:0025/n/n");
textcolor(BLACK);
cprintf("/rFunction:Delete a file under the path:/n");
window(5,14,75,24);
textbackground(BLACK);
textcolor(WHITE);
clrscr();
cprintf("/rUsage:DelFile path filename. /n/n");
cprintf("/rExample:DelFile -d://abc// def.txt /n/n");
cprintf("/rIt's will delete all named 'def.txt' file under d://abc// /n/r");
cprintf("/r/n/n/n/n/n");
}
void usage()
{
printf("/n/r/t/t DELFILE /n");
printf("Author:fuweilin fuweilin@hotmail.com/n");
printf("Date:2005-1-28/n");
printf("Ver:1.0/n");
printf("Funtion:Delete all files named 'filename' under the path/ n");
printf("Usage:delfile [path] filename/n");
}
int validateArg(int argc,char *argv[])
{
switch (argc)
{
case 2:
path = ".";
fileName = argv[1];
break;
case 3:
path = argv[1];
fileName = argv[2];
break;
default:
printf("arg error!refence the usage!/n/r");
return 0;
}
return 1;
}
int findfile(path,file)
{
char filename[MAXDIR]; char dir[MAXDIR];
int rtn;
struct ffblk ff;
/*find all dir*/
strcpy(filename,path);
strcat(filename,"//*.*");
rtn = findfirst(filename,&ff,FA_DIREC);
while(rtn == 0)
{
if ( ((ff.ff_attrib & 0xF0) == 0x10) && (strcmp(ff.ff_name,".")) && (strcmp(ff.ff_name,"..")) )
{
strcpy(dir,path);
strcat(dir,"//");
strcat(dir,ff.ff_name);
/*find into sub dir*/
findfile(dir,file);
}
rtn = findnext(&ff);
}
/*find all file*/
strcpy(filename,path);
strcat(filename,"//");
strcat(filename,file);
rtn = findfirst(filename,&ff,FA_SYSTEM|FA_HIDDEN|FA_ARCH|FA_RDONLY);
while(rtn == 0)
{
printf("%s//%s/t",path,ff.ff_name);
/*delete the file */
strcpy(dir,path);
strcat(dir,"//");
strcat(dir,ff.ff_name);
if(unlink(dir)!=0)
printf("delete %s failed!/n",dir);
else
printf("delete %s success!/n",dir);
rtn = findnext(&ff);
}
}
int main(int argc,char * argv[])
{
int rtn;
char dir[MAXDIR];
showInfo();
printf("/r/n");
/* usage(); */
if (validateArg(argc,argv)==0)
return 0;
printf("path is '%s',filename is '%s'/n",path,fileName);
findfile(path,fileName);
printf("thank you,88.");
}