The aim of this Duplicate Searcher project is to produce a C# based application that will scan a file system or file repository for duplicate files using CRC
The different types of comparison will be:
File System with itself e.g. D:\data with D:\data
File System with an other file system e.g. C:\data with D:\data
File System with a file repository
The software will produce a list of duplicate files i.e. files with matching CRC and their locations in both source and destination.
The file repository will have a simple interface that will allow you to retrieve files. A sample set of classes to retrieve files is included below.
The following deliverables are required:
1. A C# Class Library to perform the comparisons listed above.
2. A command line program to drive the above library
3. A concrete implementation for the file repository so testing may be performed. For example, FTP may be used as a repository or even an other file system may be used. This only has to be good enough for testing.
4. Optional – A WPF or Windows Forms application to display the CRC matches.
/// Reads files from a repository
public abstract class RepositoryReader
private string repositoryIdentifier;
public RepositoryReader(string repositoryIdentifier)
[url removed, login to view] = repositoryIdentifier;
/// <summary>Connects the repository</summary>
/// <returns>true if connection successful</returns>
public abstract bool connect();
/// <summary>Returns the next item in the repository</summary>
/// <returns>null if there is no next item</returns>
public abstract RepositoryItem next();
public abstract class RepositoryItem
public abstract string id();
public abstract string location();
public abstract string title();
public abstract string fileName();
public abstract Stream getFile();
Some notes on CRC can be found here:
[url removed, login to view]