We need a file-undeleter-library for C# under .NET 2.0.
The library should be able to:
-Scan existing drives for restorable files, callback a method when a file is found.
-On the callback, give information about the original filepath+name+extension, if the file is recoverable and some ID to later recover a certain file
-It should work with NFTS and FAT32
-Needs to find files deleted from RecycleBin (and recylce bin emptied)
-Needs to find files deleted without recycle bin
-Needs to find files deleted from RecycleBin and still in recycle bin
the library should work under Windows XP, Vista and 7 in both 32 and 64 bit
Please use an interface similar to this:
namespace Recycler
{
public class IRecycler
{
/// <summary>
/// Scans the requested drive for deleted files.
/// Calls UpdateProgressCallback to notify application about progress.
/// Calls RestorableItemFoundCallback to notify that a deleted file was found.
///
/// </summary>
/// <param name="drivesToScan">Name of drives for scanning (like [C:\,D:\,H:\])</param>
/// <param name="updateProgress">Pointer to a progress callback function</param>
/// <param name="itemFound">Pointer to a 'file found' callback function</param>
/// <returns>FALSE If error occurs</returns>
public bool ScanDrive(string[] drivesToScan,
UpdateProgressCallback updateProgress,
RestorableItemFoundCallback itemFound)
{
return true;
}
/// <summary>
/// Returns a string array (or something similar) containing the drives on the system
/// that can be scanned and where it would be possible to recover data
/// </summary>
public string[] GetRecoverableDrivesToScan();
/// <summary>
/// Recovers the requested file - according to ID - to the requested path.
/// </summary>
/// <param name="fileId">Unique file id</param>
/// <param name="recoveryPath">Path, where file recovered</param>
public bool RecoverFile(int fileId, string recoveryPath);
}
}