Introduction

FlexNamer is built on a simple plugin architecture that keeps individual naming formats in separate plugins so that FlexNamer itself doesn’t need to know about every possible name variation you might want to use.

As well as keeping the application simple and allowing you to build your own naming formats for your exact use case, this also makes it possible to share naming formats if you are renaming files from a commonly used data source.

Building plugins

Building FlexNamer plugins is pretty simple:

  • Create a class library targeting .NET 8
  • Add a reference to FlexNamer.Core
  • Add at least one implementation of the INamingFormat interface
  • Put your compiled library in a (correctly named) folder beside the FlexNamer binary

That’s it! When you run FlexNamer, it checks the current directory, and the directory containing the executable, for a folder named “Formats” and load any plugin it finds there.

Plugin Folders

For your plugins to be identified and loaded by FlexNamer, they need to be in a folder named the same as the assembly itself. So if your class library outputs a MyFileNameFormat.dll, then it should be in a folder at Formats/MyFileNameFormat/ like below:

  │   FlexNamer.exe
└───Formats
	└───MyFileNameFormat
		│   // trimmed for brevity
		└───MyFileNameFormat.dll