diff --git a/Codec/Archive/FileCollection.hs b/Codec/Archive/FileCollection.hs
--- a/Codec/Archive/FileCollection.hs
+++ b/Codec/Archive/FileCollection.hs
@@ -39,16 +39,19 @@
 -}
 
 class File f where
+  fileName :: f → String
   readFile :: f → IO BS.ByteString
   writeFile :: f → BS.ByteString → IO f
   appendFile :: f → BS.ByteString → IO f
 
 instance File FilePath where
+  fileName = id
   readFile f = BS.readFile f
   writeFile f c = BS.writeFile f c >> return f
   appendFile f c = BS.appendFile f c >> return f
 
 instance File Entry where
+  fileName = eRelativePath
   readFile = return . fromEntry
   writeFile e newContents = do
     now <- fromIntegral <$> sec <$> getTime Realtime
diff --git a/file-collection.cabal b/file-collection.cabal
--- a/file-collection.cabal
+++ b/file-collection.cabal
@@ -1,5 +1,5 @@
 name:                file-collection
-version:             0.1.1.2
+version:             0.1.1.3
 synopsis:            Provide a uniform interface over file archives and directories
 description:         The interface is essentially the same as that provided by
                      `directory`, except each function also take reference to the
