Introduction
This is a small application written in C# .NET that can delete files from any Windows directory. It is a command line tool that can be run via a batch file (included in the Debug directory of the project).
Background
The basic idea of this tool is to clean up old files that keep on lingering on in the system especially log files. The tool accepts *.txt/*.log/*.zip inputs and deletes them from the specified folder. The age of the files can also be supplied as a parameter to the tool.
Using the Code
The tool can be used by writing the following lines in a batch file:
rem the format for the arguments to be passed to the logCleanup.exe is as follows
rem 1. path of the folder (enclosed within double quotes / replace all '/' with '//')
rem 2. number of days e.g: 10
rem 3. extension of files to be deleted. limited only to txt / log / zip
rem 4. mode. limited to top / all. top-deletes files in that directory only.
all-deletes files in all subdirectories too.
logCleanup.exe "C:\\temp" 30 txt top
rem pause
The logCleanup.exe file is generated by compiling the following code segment:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace logCleanup
{
class Program
{
static void Main(string[] args)
{
string[] sFiles = { };
string sFileName = "";
int iCount = 0;
if ("txt" != args[2].ToString() && "log" != args[2].ToString() &&
"zip" != args[2].ToString())
{
Console.WriteLine("Only zip, txt and log files can be deleted");
Console.Read();
return;
}
if (Directory.Exists(args[0].ToString()))
if ("top" == args[3].ToString())
sFiles = Directory.GetFiles(args[0].ToString(),
"*."+args[2].ToString(), SearchOption.TopDirectoryOnly);
else if ("all" == args[3].ToString())
sFiles = Directory.GetFiles(args[0].ToString(),
"*." + args[2].ToString(), SearchOption.AllDirectories);
Console.WriteLine("Total Files Parsed: " + sFiles.Length);
for (iCount = 0; iCount < sFiles.Length; iCount++)
{
sFileName = sFiles.GetValue(iCount).ToString();
if (1 == DateTime.Compare(DateTime.Now,
File.GetCreationTime(sFileName).AddDays(Convert.ToDouble(args[1]))))
{
Console.WriteLine("File Deleted: " + sFileName);
File.Delete(sFileName);
}
}
}
}
}
Points of Interest
This code currently only works with the Date of Creation of a file. It can easily be modified to use the Last Updated time, etc.
History
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.