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.



Notes
FileIndexer 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

Last edited Jul 10, 2007 at 1:10 PM by manu, version 8