Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

FileCollector

0.00/5 (No votes)
3 Jun 2004 1  
A simple tool for collecting files, written in C#, with shell32 support.

Sample screenshot

Introduction

Lately, I often need to get all the sources of the project together with all the dependencies etc. So, I looked for a tool to select all the desired files and copy them to a single directory. Since I didn't find one, I wrote one.

Using FileCollector

In the main tree, you can select the files you want. Every selection (positive or negative) affects the entire subtree. So you can, for instance, first select the project dir, then deselect the bin and obj and any other files you don't want to take, and so on.

Once you selected all the directories and files, specify a target path, and start the collecting. Warning: Since I figured that the target path is for this purpose only and, even more, is temporary, the tool deletes the target path every time you start collecting.

And the best thing is: if you select the desired files and save the settings to a .fc file, you can start the collection by choosing the context-menu option 'Start' in the Explorer, without bothering to open the Form. That way, you can get the target up to date really quickly.

About the Code

The interesting part is the main treeview. Icons for this one are extracted like shown in furty's FolderTreeView. The delete and copy business (with the nice Windows dialogs) is done with help from arikp's "C# does shell, Part 2". So thanks to both of them - this simply makes a tool look much more 'Windows' ;).

Information about the selected items is stored in the CollectorSettings class by means of positive and negative information. Nothing fancy. The rest is some event handling and some System.IO - but no need to write another article on that stuff :)

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here