def touch(self, mode=0o666, exist_ok=True):
        """Create this file with the given access mode, if it doesn't exist.
           Based on:
            
              https://github.com/python/cpython/blob/master/Lib/pathlib.py)
              
        """
        if exist_ok:
            # First try to bump modification time
            # Implementation note: GNU touch uses the UTIME_NOW option of
            # the utimensat() / futimens() functions.
            try:
                os.utime(self, None)
            except OSError:
                # Avoid exception chaining
                pass
            else:
                return
        flags = os.O_CREAT | os.O_WRONLY
        if not exist_ok:
            flags |= os.O_EXCL
        fd = os.open(self, flags, mode)
        os.close(fd)