Creates a new entity with the same file system and same type as this entity but backed by the specified delegate.
@override T wrap(io.Directory delegate) => wrapDirectory(delegate) as T;