File Interface updates

I added some more to the File interface.  In doing so, I found that a
lot of what we want to do with this interface already exists in