Wie bekomme ich Dateipfad von std :: ifstream in C ++
Ich das öffnen einer Datei mit std::ifstream
.
Kann ich öffnen Sie die Datei mit relativem Pfad (file.txt
) oder absoluten Pfad (C:\test\file.txt
).
Wie leite ich einen string als Datei-Namen, ich weiß nicht, ob es sich um einen relativen oder absoluten Pfad.
Kann mir jemand sagen, wie man den absoluten Pfad nach der Datei erfolgreich öffnen mit
std::ifstream
?
z.B.:
std::ifstream file(strFile); //strFile is "file.txt" or "C:\test\file.txt"
Ich möchte den absoluten Pfad nach der Datei, die geöffnet war erfolgreich.
Dank,
InformationsquelleAutor der Frage Nilesh Shinge | 2010-06-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht,
std::ifstream
speichert diese Informationen nicht.Was Sie kann tun, aber:
benutzen Sie eine Bibliothek wie Boost.Dateisystem Bibliothek zu verwandeln, zwischen relativen und absoluten Pfaden.
InformationsquelleAutor der Antwort Alex B
Fstream sind die Klassen haben keine Funktionalität für den Zugriff oder die Bearbeitung der name verwendet, um die Datei zu öffnen mit, und der C++ - Standard-Bibliothek hat keinen Dateinamen-Verarbeitung-Funktionen - Sie müssen den code selbst schreiben, oder verwenden Sie ein Drittanbieter-Bibliothek oder Betriebssystem bereitgestellten Funktionen.
InformationsquelleAutor der Antwort
Ich glaube nicht, dass es möglich ist für einen std::fstream sind. Ich habe es für eine DATEI * unter Windows (in einer nicht tragbaren Weise). Sehen vom file-Objekt Datei-name.
Haben Sie als Erweiterung der ifstream mit Ihrer eigenen Klasse, die erinnert sich an den Namen der Datei?
InformationsquelleAutor der Antwort Michael J