You can't have object extending case classes, so either make PartialArchive be a trait or an abstract class. Something like that should be ok: 
trait PartialArchive extends ArchiveMode { def directory: String .... }
object GroupArchive extends PartialArchive { override val directory = "...." }

Also, please add a comment about the convention for the path (relative to what, starting/ending slashes, what about root path, etc)