Znalazłem wiele bibliotek, które pomagają analizować argumenty wiersza poleceń, ale żaden z nich nie zajmuje się obsługą nazw plików. Jeśli otrzymam coś takiego jak "../foo" w linii poleceń, jak mogę znaleźć pełną ścieżkę do pliku?Jak uzyskać pełną ścieżkę do argumentu wiersza polecenia filename?
Odpowiedz
POSIX ma realpath()
.
#include <stdlib.h>
char *realpath(const char *filename, char *resolvedname);
OPIS
realpath() funkcji, wynika z ścieżka wskazywanego przez pliku, absolutny ścieżce, których nazwy tego samego pliku, którego rozwiązanie nie dotyczy”.«» .. "lub dowiązania symboliczne. Wygenerowana nazwa ścieżki jest przechowywana, maksymalnie do {PATH_MAX} bajtów, w buforze wskazywanym przez rozwiązaną nazwę.
Dzięki za edycję, Jonathan; a szczególnie w podsumowaniu. – pmg
Można użyć boost::filesystem
uzyskać absolute path
pliku, od jego 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) w V3 – KindDragon
W skryptach powłoki polecenie "readlink -f" ma funkcjonalność realpath().
- 1. W systemie Linux, jak uzyskać pełną ścieżkę polecenia używam?
- 2. Jak uzyskać pełną ścieżkę wirtualną aplikacji ASP.NET?
- 3. Jak uzyskać pełną ścieżkę, podając nazwę pliku?
- 4. Jak uzyskać pełną ścieżkę do pliku w VBScript?
- 5. jak uzyskać dokładną pełną ścieżkę do pliku w perlu
- 6. Jak uzyskać pełną ścieżkę do katalogu bieżącego pliku w Pythonie?
- 7. Jak uzyskać pełną ścieżkę dostępu do pliku z wejściem plików
- 8. Jak uzyskać pełną ścieżkę do pliku build.gradle przez Groovy?
- 9. Używanie argumentu wiersza polecenia do przekazywania plików do programu
- 10. Przekazywanie argumentu do CMAKE za pomocą wiersza polecenia
- 11. Polecenie powłoki systemu Windows, aby uzyskać pełną ścieżkę do bieżącego katalogu?
- 12. Jak uzyskać pełną ścieżkę dla procesu na OS X?
- 13. Making git diff --stat pokazać pełną ścieżkę dostępu do pliku
- 14. Jak uzyskać dokładną ścieżkę do "Moich dokumentów"?
- 15. Jak mogę rozwinąć pełną ścieżkę bieżącego pliku, aby przejść do polecenia w Vimie?
- 16. Jak uzyskać właściwość wiersza polecenia do nadpisania właściwości maven
- 17. Przekierowywanie wyjścia do argumentu wiersza polecenia innego polecenia w systemie Windows
- 18. Firebase uzyskać pełną ścieżkę URL odniesienia w dataSnapshot (JavaScript API)
- 19. dekodować tinyurl w R, aby uzyskać pełną ścieżkę URL?
- 20. PHP stworzyć losowy plik TMP i uzyskać jego pełną ścieżkę
- 21. Jak znaleźć pełną ścieżkę do aplikacji w skrypcie
- 22. Jak mogę oddzielić pełną ścieżkę do katalogu i nazwy pliku?
- 23. Jak dołączyć pełną ścieżkę do instrukcji Rails 3 link_to?
- 24. Jak dostać się do wiersza polecenia uboot
- 25. UNIX: Jak użyć polecenia Znajdź, aby znaleźć pełną ścieżkę jeśli podano częściowa ścieżka
- 26. Jak znaleźć pełną ścieżkę do pliku wykonywalnego Mercurial, gdy system Windows jest w stanie go zlokalizować?
- 27. Jak przekonwertować ścieżkę względną na pełną ścieżkę w pliku wsadowym DOS?
- 28. Przekazywanie argumentu unicode z wiersza komend do kodu Java
- 29. usunąć pełną ścieżkę, zachować nazwę pliku tylko
- 30. zapisywanie wiersza polecenia do pliku
Dlaczego uważasz, że potrzebujesz pełnej ścieżki do pliku? Syscalls działają dobrze przy względnych ścieżkach. –
Wierzę, że polecenie "pwd" podaje aktualną ścieżkę/lokalizację. Powinieneś być w stanie wymyślić resztę ... ale Andrew (komentarz powyżej) jest poprawny. –
Moje narzędzie generuje pliki tekstowe, więc potrzebuję pełnej ścieżki. Budowanie ścieżek brzmi jak ból, to musiało zostać rozwiązane już 1000 razy. –