コマンドライン引数の解析に役立つライブラリがたくさん見つかりましたが、いずれもファイル名の処理に対応していないようです。コマンドラインで "../foo"のようなものを受け取った場合、ファイルのフルパスをどのように把握するのですか?ファイル名のコマンドライン引数の絶対パスを取得するにはどうすればよいですか?
11
A
答えて
15
POSIXはrealpath()
を持っています。
#include <stdlib.h>
char *realpath(const char *filename, char *resolvedname);
パス名から記述
のrealpath()関数が導出は、名、名前その解像度伴わない同じファイルを、絶対パス名によって指し示さ」。 『』 .. "、またはシンボリックリンク。生成されたパス名は、の解決名が指し示すバッファに最大{PATH_MAX}バイトまで格納されます。
+0
編集のおかげで、Jonathan;特に要約のために。 – pmg
2
19
あなたはそのrelative path
から、ファイルのabsolute path
を取得するためにboost::filesystem
を使用することができます。
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;
+4
V3のfs :: absolute(p) – KindDragon
1
シェルスクリプトでは、コマンド "readlink -f"にはrealpath()の機能があります。
関連する問題
- 1. Perlプログラムの絶対パスを相対パスから取得するにはどうすればよいですか?
- 2. ファイルのコピー時にコピーの絶対パスを取得するにはどうすればよいですか?
- 3. Actionscriptでswfファイルの絶対パスを取得するにはどうすればよいですか?
- 4. メーラーのアセットパイプラインでスタイルシートの絶対パスを取得するにはどうすればよいですか?
- 5. 現在のスクリプト(マルチOSソリューション)の絶対パスを取得するにはどうすればよいですか?
- 6. Androidの「assets」ディレクトリの絶対パスを取得するにはどうすればよいですか?
- 7. Rails 3でリソースの絶対パスを取得するにはどうすればよいですか?
- 8. PHPを使用してファイルの名前からのみファイルの絶対パスを取得するにはどうすればよいですか?
- 9. コマンドラインで相対パスから絶対パスを取得する方法
- 10. ファイル名と拡張子を絶対パスから取得する
- 11. 相対パスを取得するにはどうすればよいですか?
- 12. コマンドライン引数でファイルを開くにはどうすればよいですか?
- 13. ファイルの拡張子なしで絶対パスと名前の両方を取得するにはどうすればよいですか?
- 14. アセットから特定のファイルの絶対パスを調べるにはどうすればよいですか?
- 15. Jenkinsでチェックアウトされたファイルの絶対パスを取得する
- 16. コンテンツのファイルの絶対パスを取得
- 17. Linuxでls -lとまったく同じようにpowershellでファイルのパーミッションと絶対パスを取得するにはどうすればよいですか?
- 18. プロジェクト内のファイルの相対パスを取得するにはどうすればよいですか?
- 19. Symfony2コントローラでファイルの絶対パスを取得する方法は?
- 20. 生のVBScriptコマンドライン引数を取得するにはどうすればよいですか?
- 21. ファイルのショートカットからパス名を取得するにはどうすればよいですか?
- 22. Perlで絶対パスを取得する
- 23. Django QuerySetから絶対イメージのURLのリストを取得するにはどうすればよいですか?
- 24. リソースを取得するためのテンプレート内の絶対パス名
- 25. コマンドライン引数を指定するにはどうすればよいですか?
- 26. アクタ内から絶対のリモートアクタURLを取得するにはどうすればよいですか?
- 27. 絶対パスでエイリアスをすばやく作成するにはどうすればよいですか?
- 28. アップロードするファイルの絶対パスを取得する
- 29. Antに対してコマンドライン引数をオプションで要求するにはどうすればよいですか?
- 30. Linux dladdr1():一致するファイルの絶対パス名を取得できません
ファイルの完全なパスが必要なのはなぜですか? Syscallsは相対パスでうまく動作します。 –
私は 'pwd'コマンドはあなたにあなたの現在のパス/場所を与えると信じています。あなたは残りの部分を把握することができるはずですが、Andrew(上記のコメント)は正しいです。 –
私のユーティリティはテキストファイルを生成するので、完全なパスが必要です。パスを構築することは痛みのように思えますが、これはすでに1000回解決されているに違いありません。 –