We do something similar to import 160 text files (and we get these every day). They are pipe delimited but have a .CSV extension. Each file has a different layout but is consistent every day (so file 1 is different to file 2 but file 1 will have the same layout every day).
We create an XML file with the Bulk Import details needed in there (the XML file is created using a script take.
Our process looks like:-
Load a Manifest file (this contains a list of all the files that have been downloaded)
There are 3 extra columns in here:-
IsDownloaded (we set that to 1 if it's a file ready for import)
IsLoading (a file in the midle of being processed)
IsLoaded (a file that has been processed). This also leaves the IsLoading set to 1
We then load the list of files into an object in SSIS (just doing a "SELECT FileName FROM Manifest WHERE IsDownloaded = 1)
We then loop through the object and collect the next file where IsDownloaded = 1 and IsLoading = 0
We then call the load process once for each file (it's the same SSIS package called up to 32 times with a paramater that specifies a filename).
We can load all 160 files (around 500MB) in about 5 minutes.
The loop just carries on calling the actual load package untill all the files are loaded.