Define "swap" for your purpose. Do you want to swap the file references entirely or just copy the contents of one stream to another?
Or is there a way to get the name of the file that the fstream has open?
Nope. You need to save the name, which is easy by wrapping the whole shebang into another object that has two members: one for the stream and one for the file name.