FileIndexer is a set of projects to index file using tags:
- FileIndexer Shell Extension is used to add tags to selected file from property applet of Windows Shell,
- FileIndexer application is used to perform file searches using tags,
- FileIndexer Service is used to mantain data integrity over deletion and cut & paste operations.
- FileIndexer Common Library used by other projects to access data.
NotesFileIndexer Shell Extension is based on this project:
http://www.codeproject.com/cs/miscctrl/HadiPropertySheet.asp FileIndexer Common Library uses provider pattern to implement data access.
This version uses FileIndexerLib.SqlClient.SqlFileIndexerProvider for SQLServer 2005,
but it's simple to implement a class for a different datasource.
Setup
- copy dwWrapper.dll into system32 folder
- Use RegAsm FileIndexerShellEx.dll to register .NET library to be used as COM object
- Update Registry
Register the new property sheet to all files
{" [HKEY_CLASSES_ROOT\*\shellex\PropertySheetHandlers\FileIndexerSheet]
@="{7402e3c6-b989-4cd8-afe0-4b564147bc2e}" "}
Register Shell Extension as approved
{" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved]
"{7402e3c6-b989-4cd8-afe0-4b564147bc2e}"="FileIndexerSheet" "}
Common setup:
connection is the db connection string of database that is used to store file informations.
Directory is the name of directory used to index file.
{" [HKEY_LOCAL_MACHINE\SOFTWARE\FileIndexer]
"Connection"="Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Kits\\FileIndexer\\FileIndexer\\FileIndexer.mdf;Integrated Security=True;User Instance=True"
"Directory"="C:\\Kits"
"FileIndexer Provider Type"="FileIndexerLib.SqlClient.SqlFileIndexerProvider"
"Include Subdirectories"="True" "}
- Setup service: InstallUtil FileIndexerService.exe
Service account must have privileges to access to the directory and connect to sql database if it's used trusted security