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.

FileIndexer Shell Extension is based on this project:

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.

  • 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


Register Shell Extension as approved

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved]

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.

"Connection"="Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Kits\\FileIndexer\\FileIndexer\\FileIndexer.mdf;Integrated Security=True;User Instance=True"
"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