Seite 1 von 1

Pfad extrahieren

Verfasst: 1. August 2009 22:33
von lodo2609
Hallo zusammen,

wie kann ich einen Pfad aus einem String extrahieren?

Code: Alles auswählen

void Test()
{

    QString test1 = QCoreApplication::applicationFilePath();
    QDir dir(test1);
    textEdit->append(test1);
    textEdit->append(dir.path());
    textEdit->append(dir.filePath(test1));

}
liefert mit den letzten beiden Möglichkeiten immer den Pfad incl. der exe-Datei, ich möchte nur das Stück davor.

Gruss Lodo2609

Verfasst: 2. August 2009 03:07
von Whitefurrows
Zum Beispiel so:

Code: Alles auswählen

	QDir dir(QCoreApplication::applicationFilePath());
	qDebug() << dir.currentPath();

Verfasst: 2. August 2009 03:25
von FaS
Nein. currentPath() ist eine statische Methode und berücksichtigt die Instanz "dir" nicht. Und der Zusammenhang mit applicationFilePath() ist sowieso nicht gegeben - in diesem Beispiel wäre QCoreApplication::applicationDirPath() passend.
Aber gesucht ist wohl eher ein allgemeingültiger Weg, welcher da lautet: QString QFileInfo::path () const.

MfG,
FaS

Verfasst: 2. August 2009 12:54
von androphinx
es wäre aber auch möglich, den string herzunehmen und den dateinamen auszuschneiden, etwa so:

Code: Alles auswählen

QString filepath("/home/blablabla/projects/theprog/bin/theprog"); /Beispiel!!!
QString dir = filepath.left(filepath.lastIndexOf("/");

Verfasst: 2. August 2009 13:05
von FaS
Wenn man einige Dinge vorraussetzen kann, ja. Diese path()-Methode ist etwas komplizierter aufgebaut. Beispielsweise würde sie auch bei einer relativen Pfadangabe ohne einen Unterordner, z.B. "datei.txt", korrekterweise "." zurückgeben.