Is there a way to collect all the files a blend file is using?
You could Pack all the files being used into the blend file and then Unpack all the files into a new location.

Packing saves any external files that are in use into the blend file itself (but this doesn't remove the originals from the hard drive). Unpacking will save the currently packed files out into directory of the current blend file (a few other options are available), thus 'collecting' all the files.


File> External Data> Pack All Into .blend.
Save the file.
File> External Data> Unpack All Into Files> Write files to current directory.
Save the file.


So, you can essentially 'collect' all the files in use into one location, but you can't actually get the original files to move (using this method).