File and Directory methods to retrieve paths

File and Directory pathnames are not directly the scalar field value:
they are instead obtained through get_filename() and get_dirname()
methods. This allows using rootnames, for instance, get_filename()
can produce self.value + some extension.