2017-05-13 1 views
-1

Ich möchte einen externen textbasierten öffnen Datei, wie folgt aus:Qt4 offen Fehler Datei: Keine solche Datei oder das Verzeichnis

QFile inputFile("mytextfile.txt"); 
if (inputFile.open(QIODevice::ReadOnly | QIODevice::Text)) 
{ 
    QTextStream in(&inputFile); 
    while (!in.atEnd()) 
    { 
     QString line = in.readLine(); 
     .. 
    } 
    inputFile.close(); 
} 
else 
{ 
    QString errMsg; 
    QFileDevice::FileError err = QFileDevice::NoError; 
    errMsg = inputFile.errorString(); 
    err = inputFile.error(); 
    qDebug() << errMsg; 
    exit(1); 
} 

Die externe Datei Standort befindet sich neben dem Quellcode. Es gibt nichts, was die Textdatei blockiert. Aber ich bekomme immer die folgende Fehlermeldung: No such file or directory

Antwort

1

Die Datei neben Ihrer Quelldatei ist nicht relevant. Was ist relevant ist, was Ihr aktuelles Arbeitsverzeichnis ist, wenn Sie das Programm ausführen.

Was die cwd ist, hängt davon ab, wie Sie das Programm starten. Wenn es von einer Kommandozeile/Shell gestartet wird, ist es das Verzeichnis, in dem Sie sich beim Starten des Programms befanden. Wenn Sie das Programm über eine GUI ausführen, ist es normalerweise ein vordefiniertes Verzeichnis wie der Desktop oder Ihr Home-Verzeichnis. Wenn Sie von Ihrer IDE aus starten, ist dies normalerweise das Verzeichnis, in das Ihre ausführbare Datei während der Kompilierung gestellt wurde (oder wo immer Sie es wollen; es ist normalerweise konfigurierbar).

In jedem Fall können Sie getcwd verwenden, um die aktuelle cwd während der Laufzeit zu erhalten. Dann können Sie damit Ihre Datendatei suchen.

Verwandte Themen