base: File API

Yes, very good.  (I forgot about cleaning this up....)