public function resolvePath() {
    if (count($this->path) == 0) {
      return $this;
    }
    
    if ($this->isRelative()) { 
      /* wir ermitteln das aktuelle working directory und fügen dieses vor unserem bisherigen Pfad hinzu
       * den . am anfang brauchen wir nicht wegmachen, das wird nachher normalisiert
       */
      $cwd = self::factory(getcwd().DIRECTORY_SEPARATOR);
      $this->prefix = $cwd->getPrefix($this);

      $this->path = array_merge(
        $cwd->getPathArray(), 
        $this->path
      ); 
    }

    /* pfad normalisieren */
    $newPath = array();
    foreach ($this->path as $dir) {
      if ($dir !== '.') { // dir2/dir1/./dir4/dir3 den . ignorieren
        if ($dir == '..') {  // ../ auflösen dadurch, dass wir ein verzeichnis zurückgehen
          array_pop($newPath);
        } else {
          $newPath[] = $dir;
        }
      }
    }
        
    $this->path = $newPath;

    return $this;
  }