I think the trait File should be split apart so that files and directories have separate traits as follows because there are operations you can perform on files that you can't perform on directories and vice-versa.
trait Path {
// methods common to both Files and Directories
}
trait Directory extends Path {
// directory specific methods
}
trait File extends Path {
// file specific methods
}