Did you look at the code in the second link? It's really quite simple. At what point does the macro crash? If you want to just pick one file at a time, you could use SldWorks::GetOpenFileName. As far as adding filenames to an array, this is possible. However, if you want to pick a bunch of files from different directories, I would suggest that you create a form with a list box and some buttons - one for "Add", one for "Process", one for "Cancel", and one for "Remove". The list box can function pretty much like a dynamic array. You can add items or remove them quite easily in code, with the added benefit of the user being able to visually see the entire list they are creating.
-handleman, CSWP (The new, easy test)