# include <string.h> # include <stdio.h> # include <conio.h> # include <dos.h> # include <dir.h> void FindFile(const char* Path,const char* FileName); const int DeleteFile(const char* File); FILE* oFile; int file_counter=0; int main( ) { char Drive[10]={\"C:\\\\\"}; char FileName[15]={NULL}; char CurrentDirectory[MAXPATH]={NULL}; int cur_drive=getdisk( ); clrscr( ); getcwd(CurrentDirectory,MAXPATH); printf(\"Enter the File Name to delete: \"); scanf(\"%s\",FileName); printf(\"\\nSearching....\\n\\n\"); oFile=fopen(\"E:\\\\TC\\\\BIN\\\\Search.txt\",\"wt\"); fclose(oFile); setdisk(2); if(getdisk( )==2) FindFile(Drive,FileName); if(file_counter==0) printf(\"No File Found.\"); else if(file_counter==1) { char Choice=NULL; char Temp[MAXPATH]={NULL}; oFile=fopen(\"E:\\\\TC\\\\BIN\\\\Search.txt\",\"rt\"); fgets(Temp,MAXPATH,oFile); fclose(oFile); Temp[(strlen(Temp)-1)]=NULL; printf(\"File Found:: %s\\n\",Temp); printf(\"\\nDo you want to delete it? (Y/N) : \"); Choice=getche( ); if(Choice==\'Y\' || Choice==\'y\') { if(DeleteFile(Temp)) { printf(\"\\n\\nUnable to delete the specified file.\"); getch( ); } } } else { int counter=0; int file_number=0; char Choice=NULL; char Temp[MAXPATH]={NULL}; oFile=fopen(\"E:\\\\TC\\\\BIN\\\\Search.txt\",\"rt\"); printf(\"The Files Found are ::\\n\"); for(counter=1;counter<=file_counter;counter++) { fgets(Temp,MAXPATH,oFile); printf(\"%d : %s\",counter,Temp); if((counter%15)==0) { printf(\"\\n Press any key to continue...\"); getch( ); printf(\"\\n\\n\"); } } fclose(oFile); printf(\"\\nEnter the File Number to Delete = \"); scanf(\"%d\",&file_number); oFile=fopen(\"E:\\\\TC\\\\BIN\\\\Search.txt\",\"rt\"); strset(Temp,NULL); for(counter=1;counter<=file_number;counter++) fgets(Temp,MAXPATH,oFile); fclose(oFile); Temp[(strlen(Temp)-1)]=NULL; printf(\"\\nSelected File :: %s\\n\",Temp); printf(\"\\nDo you want to delete it? (Y/N) : \"); Choice=getche( ); if(Choice==\'Y\' || Choice==\'y\') { if(DeleteFile(Temp)) { printf(\"\\n\\nUnable to delete the specified file.\"); getch( ); } } } printf(\"\\n\\nPress any key to exit...\"); setdisk(cur_drive); chdir(CurrentDirectory); getch( ); return 0; } //---------------------------- FindFile( ) ----------------------------// void FindFile(const char* Path,const char* FileName) { struct find_t ffblk; int flag; char File[MAXPATH]={NULL}; chdir(Path); strcpy(File,Path); strcat(File,FileName); flag=_dos_findfirst(File,_A_NORMAL,&ffblk); if(!flag) { char Choice; while(!flag) { char Temp[MAXPATH]={NULL}; strcpy(Temp,Path); strcat(Temp,ffblk.name); oFile=fopen(\"E:\\\\TC\\\\BIN\\\\Search.txt\",\"at\"); fputs(Temp,oFile); fputs(\"\\n\",oFile); fclose(oFile); file_counter++; flag=_dos_findnext(&ffblk); } } strcpy(File,Path); strcat(File,\"*.*\"); flag=_dos_findfirst(File,FA_DIREC,&ffblk); while(!flag) { if(strcmp(ffblk.name,\".\")!=0 && strcmp(ffblk.name,\"..\")!=0 && ffblk.attrib==FA_DIREC) { char Temp[MAXPATH]={NULL}; strcpy(Temp,Path); strcat(Temp,ffblk.name); strcat(Temp,\"\\\\\"); FindFile(Temp,FileName); } flag=_dos_findnext(&ffblk); } chdir(Path); } //--------------------------- DeleteFile( ) ---------------------------// const int DeleteFile(const char* File) { union REGS InReg; union REGS OutReg; InReg.h.ah=0x41; InReg.x.dx=FP_OFF(File); int86(0x21,&InReg,&OutReg); return OutReg.x.cflag; }