Ich habe viele Bibliotheken gefunden, die beim Parsen von Befehlszeilenargumenten helfen, aber keiner von ihnen scheint mit der Handhabung von Dateinamen zu tun zu haben. Wenn ich in der Befehlszeile etwas wie "../foo" erhalte, wie finde ich dann den vollständigen Pfad zur Datei?Wie bekomme ich den vollständigen Pfad für ein Befehlszeilenargument für Dateinamen?
Antwort
POSIX hat realpath()
.
#include <stdlib.h>
char *realpath(const char *filename, char *resolvedname);
BESCHREIBUNG
Die realpath() Funktion leitet sich aus dem Pfadnamen von Dateinamen wies eine absolute Pfadnamen, die Namen der gleichen Datei, deren Auflösung ist nicht mit“. "" .. "oder symbolische Links. Der generierte Pfadname wird bis zu maximal {PATH_MAX} Bytes im Puffer gespeichert, auf den aufgelöster Name zeigt.
Danke für die Bearbeitung, Jonathan; und vor allem für die Zusammenfassung. – pmg
Sie könnten boost::filesystem
verwenden die absolute path
einer Datei zu erhalten, von seinem relative path
:
namespace fs = boost::filesystem;
fs::path p("test.txt");
fs::path full_p = fs::complete(p); // complete == absolute
std::cout << "The absolute path: " << full_p;
fs :: absolute (p) in V3 – KindDragon
In Shellskripten hat der Befehl "readlink -f" die Funktionalität von realpath().
- 1. Wie bekomme ich den vollständigen Pfad für "../" in Unreal Engine?
- 2. Directory.GetFiles: Wie bekomme ich nur den Dateinamen, nicht den vollständigen Pfad?
- 3. Den vollständigen Pfad für Windows-Dienst abrufen
- 4. Wie bekomme ich Adobe Reader den vollständigen Pfad (einschließlich ausführbaren Dateinamen)?
- 5. Wie bekomme ich den vollständigen Pfad der heruntergeladenen Datei
- 6. Wie bekomme ich den vollständigen Pfad zur Datei in Zend
- 7. Wie bekomme ich den vollständigen virtuellen Pfad einer ASP.NET-Anwendung?
- 8. Erhalte den vollständigen Pfad ohne Dateinamen aus dem Pfad, der den Dateinamen enthält
- 9. Wie bekomme ich den vollen Pfad, indem ich nur den Dateinamen gebe?
- 10. Erhalten Dateinamen nur aus vollständigen Pfad
- 11. Wie bekomme ich den Dateinamen einer DLL?
- 12. Wie bekomme ich den vollständigen Pfad für einen Prozess unter OS X?
- 13. Verwenden Sie sed, um den Dateinamen vom vollständigen Pfad abzurufen?
- 14. Ich finde einen Pfad ohne den Dateinamen
- 15. Wie bekomme ich den Pfad vor Dateiname
- 16. Warum ist es notwendig, den vollständigen Pfad für Teilansicht
- 17. Wie bekomme ich den vollständigen Weg zur Textur des Materials?
- 18. Wie bekomme ich einen Dateinamen von einem vollständigen Pfad mit PHP?
- 19. Wie bekomme ich einen Teil vom vollständigen Pfad in C#?
- 20. Wie bekomme ich den Pfad für openFile in Haskell?
- 21. Wie bekomme ich einen Dateinamen von einem Pfad?
- 22. In Linux, wie bekomme ich den vollständigen Pfad eines Befehls, den ich verwende?
- 23. PhoneGap iOS, wie bekomme ich App "Dokumente" Ordner vollständigen Pfad?
- 24. Wie bekomme ich den genauen vollständigen Pfad zu einer Datei in Perl
- 25. Name eines Pfades, der den vollständigen Dateinamen enthält?
- 26. Wie bekomme ich den Dateinamen mit C++? 17 Dateisystem
- 27. Regex für den Dateinamen
- 28. IIS: Wie bekomme ich den Metabase-Pfad?
- 29. Wie bekomme ich den vollständigen Pfad des ausgewählten Knotens im Paket-Explorer von einem Eclipse-Plugin?
- 30. Wie kann ich programmgesteuert den vollständigen Pfad der ausführenden Hauptklasse
Warum denken Sie, dass Sie den vollständigen Pfad zur Datei benötigen? Syscalls funktionieren problemlos mit relativen Pfaden. –
Ich glaube, der Befehl 'pwd' gibt Ihnen Ihren aktuellen Pfad/Standort. Du solltest in der Lage sein, den Rest herauszufinden ... aber Andrew (Kommentar oben) ist richtig. –
Mein Dienstprogramm erzeugt einige Textdateien, daher brauche ich den vollständigen Pfad. Wege zu konstruieren klingt wie ein Schmerz, der schon 1000 Mal gelöst sein muss. –