This project has evolved over time. The most notable item to know to get this to work is it now writes all the folders it is going to search to a SQL Server database.
The app.config file, found in the project, needs its connection string set to the right server and database name.
There is a script in the project itself that will create the database and tables.
The application needs to be run with a Windows user that has dbo access to the database.
Other than that: select where you want to copy from and where to copy to and add a comma delimited list of users to copy just files owned by them. You also have options to just load the folder list or to skip the folder list load altogether, if you already loaded all the folders and just want to rerun.
I elected to write the folders to a database because of the file and folder length errors as well access denied errors. I could then get the full list and run and only pull up the files and folders as needed rather than storing all that in the application memory.