//Created 2004, Oregon Embedded Development

//Freeware--Use in any manner you wish.
#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <windows.h>





//Compiled & Linked with MSVC 



BOOL EnumerateDirectory(BYTE* Extension,BYTE* Preamble)

{

 BYTE Filetype[20];

 WORD j,NumFiles;

 WIN32_FIND_DATA FindFileData;

 HANDLE h;

 BYTE Original[3000][100];

 BYTE EnumeratedAs[100];



 if (Extension[0]==0) 

  {

   printf("ERROR: File extension must be explicit.\r\n");

   return(FALSE);

  }

 

 

 NumFiles=0;

 sprintf(Filetype,"*.%s",Extension);

 h=FindFirstFile(Filetype,&FindFileData);

 if (h!=INVALID_HANDLE_VALUE)

  {

   do {

     strcpy(Original[NumFiles],FindFileData.cFileName);

	 if (NumFiles<2900) NumFiles++;

    } while (FindNextFile(h,&FindFileData));

   FindClose(h); 

  }



 for (j=0;j<NumFiles;j++)

  {

   sprintf(EnumeratedAs,"%s%d.%s",Preamble,j+1,Extension);	 

   printf("  %s -> %s\r\n",Original[j],EnumeratedAs);

   rename(Original[j],EnumeratedAs);  

  }

 

 return(TRUE);

}











void main (int argc,char** argv)

{

 BYTE b;

 BYTE Preamble[100];

 BYTE Extension[100];



 //int j;

 //printf("Argument count=%d\r\n",argc);

 //for (j=0;j<argc;j++) printf("%d = %s\r\n",j,argv[j]);

 









 printf("File enumerator v1.0\r\n");

 

 if (argc==1)

  {

   printf("SYNTAX: ENUM type [preamble]\r\n");

   printf("\r\n");

   printf("EXAMPLE: enum jpg\r\n");

   printf("(This would enumerate all the jpeg files in a\r\ngiven directory as 1.jpg to n.jpg)\r\n");

   printf("\r\n"); 

   printf("EXAMPLE: enum jpg HIST\r\n");

   printf("(This would enumerate all the jpeg files in a\r\ngiven directory as HIST1.jpg to HISTn.jpg)\r\n");

   printf("\r\n"); 

   return;

  }



 

 Preamble[0]=0;

 strcpy(Extension,argv[1]);

 if (argc==3) strcpy(Preamble,argv[2]);





 printf("Renaming files *.%s to %sn.%s\r\n",Extension,Preamble,Extension);

 printf("Proceed (Y/N)? ");

 do {

   b=getch();

   if (b=='y') b='Y';

   if (b=='n') b='N';

  } while ((b!='Y')&&(b!='N')); 



 if (b=='N') {printf("No.\r\n");return;}



 printf("Yes.\r\n\r\n");

 EnumerateDirectory(Extension,Preamble);

 

 printf("Finished!\r\n");

}