DupeLister is a small and simple and fast little program to show the sorted dir contents of a directory ar a certain depth. This tool makes so called dupe lists which make it easy for OnDirCreated.exe to block a new directory to be created. It uses FTPServerTools.ini which it will look for in the same dir that DupeLister.exe is in. It must be under [Directories] in FTPServerTools.ini Example of the DupeCheckDir format is: --------------------------- DupeCheckDir=C:\FTP\0DAY|C:\FTP\LISTS\0-Day.lst|2|24 The first entry is the dir that is being checked, ANY dir created as subdir will be check for being dupe. The second entry is the list file that will be created or added to. The third entry is the depth on which the list scan will be made. The fourth entry is the age in hours that a dir at least has to be before actually being added. This third entry depends on what types of dirs you use. For dirs like: C:\FTP\0DAY\0101\blah you would want to store the 'blah' dir. So in the example you would be 2 levels deep. Since you may gave 24 hours of time to complete a directory it makes sense not to add a directory immediately. Specially since OnDirCreated.exe already checks all online dirs it is handier to not add a dir immedaitely. But if you wish to do it anyway it is all possible of course. In the following example a depth of 1 is sensible. DupeCheckDir=C:\FTP\DIVX|C:\FTP\LISTS\DIVX.lst|1|24 If you do not have the 4 things filled in then the list will not be made. The Ignore= lines that follow DupeCheckDir will tell which dirs to skip whilst scanning. So be aware that if there are entries that would match in the old listing file that those will not be removed. The paths in the ToFile file are relative from the FromDir. So the results are for example: ABC.Game-XXX|2004-01-01 00:01:10 abc.Game.Trainer-YYY|2004-01-02 00:02:22 Blow.Up.Monitor-ZZZ|2004-01-01 00:03:30 ... Blah.Blah.v.1.2.1-KLX|2004-01-01 11:01:10 ... etc.. The format of a single line consists in the log file is: -------------------------------------------------------- dirname|yyyy-mm-dd hh:mm:ss If |yyyy-mm-dd hh:mm:ss is missing it is simply ignored. The date/time is in UTC time, so be aware that if you make your own tools that use this file you still need to translate this to your local time. Example of a working part of FTPServerTool.ini file for DupeListe useage: -------------------------------------------- [Directories] DupeCheckDir=C:\FTP\0DAY|C:\FTP\LISTS\0-Day.lst|2|24 Ignore=*DUPE* Ignore=*NUKED* Ignore=*!* Ignore=C:\FTP\0DAY\OLD\* DupeCheckDir=C:\FTP\ISO\DIVX|C:\FTP\LISTS\DivX.lst|1|0 Ignore=*DUPE* Ignore=*NUKED* Ignore=*!* Commandline options: -------------------- Delete=dirname This will remove the complete dirname from the list (using case INSENSITIVE comparison). Remove=nr That is the Remove= option with a number of days behind it. This option will remove/not add dirs that are of that number of days or more. if you use no From= then all listfiles will have the dirs removed that are of that number of days. Add=dirpath This is the complete dirpath which will be used to add the dirname frmo to the appropriate dupelist Thus examples: DupeLister Remove=20 From=C:\FTP\ISO\DIVX\LISTS\DivX.lst this will add all the dirs that are not older the 20 days. DupeLister Delete=C:\FTP\ISO\DIVX\Hoppalong.Cassidy-XVID will remove Hoppalong.Cassidy-XVID from the list C:\FTP\LISTS\DivX.lst DupeLister Add=C:\FTP\ISO\DIVX\Hoppalong.Cassidy-XVID this adds Hoppalong.Cassidy-XVID to C:\FTP\LISTS\DivX.lst if it isnt there yet. Version History: 1.0.0: First version 1.0.1: Added:Date/Time in the dupelist file, it will be used in OnDirCreated. Added:age=x to only add dirs of x hours old. Added:remove=x commandline parameter to delete dirs from more then x days old from the dir list Added:Auto add current date/time to an entry if it for some reason does not have a date/time yet. 1.0.2: Remove=0 fixed. 1.0.3: Added:Ignore= to ignore diirs whilst scanning 1.0.4: Fixed: crash when no Ignore was given 1.0.5: Added: Delete= commandline argument Added: From= commandline argument Fixed: Remove= didnt work correctly 1.0.6: Added: Add= commandline argument Changed: From= no longer needed for Delete= Changed: Delete= now expects a full path (dir doesnt need to exists tho) 1.0.7: Changed: Delete= didnt take the depth properly in respect, it now deletes dirnames at the given depth and ignores if they are at another depth 1.0.8: Changed: DupeLister is converted into a console program.