[解決済み] Javaで2つの絶対パス(またはURL)から相対パスを構築するにはどうすればよいですか?
2022-03-29 17:15:45
質問
2つの絶対パスがある場合、例えば
/var/data/stuff/xyz.dat
/var/data
2番目のパスをベースとする相対パスはどのように作成すればよいのでしょうか。上の例では、結果は次のようになるはずです。
./stuff/xyz.dat
どのように解決するのですか?
少し回りくどいですが、URIを使ってみてはいかがでしょうか? URIにはrelativizeというメソッドがあり、必要なチェックをすべて行ってくれる。
String path = "/var/data/stuff/xyz.dat";
String base = "/var/data";
String relative = new File(base).toURI().relativize(new File(path).toURI()).getPath();
// relative == "stuff/xyz.dat"
ファイルパスには
java.nio.file.Path#relativize
で指摘されているように、Java 1.7以降では
Jirka Meluzin
で
もうひとつの答え
.
関連
-
[解決済み] Java enumのメンバーを比較する:==またはequals()?
-
[解決済み] raw 型のメンバへのアンチェックの呼び出し
-
[解決済み] ファイルを作成せずに、ファイルが存在するかどうかをチェックする
-
[解決済み] Java の文字列インデックスが範囲外です。0 [閉店]
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] ファイルの内容からJavaの文字列を作成するにはどうすればよいですか?
-
[解決済み] Pythonでファイルの絶対パスを取得する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] java.sql.SQLException: ORA-00933: SQL コマンドが正しく終了していません。
-
[解決済み] Java - JTextFieldが空かどうかを確認する
-
[解決済み] XX:MaxDirectMemorySizeの既定値
-
[解決済み] 一部の入力ファイルが非推奨のAPIを使用またはオーバーライドしている
-
[解決済み] Eclipse- Dynamic Web Module 3.0 で新しいプロジェクトを作成するときに Java 1.6 以降が必要なエラーが発生する。
-
[解決済み] mavenのコンパイルに失敗するのはなぜですか?
-
[解決済み] 親から継承したメソッドの可視性を下げることができない [重複]。
-
[解決済み] 1行目2列目でBEGIN_ARRAYを期待したが、BEGIN_OBJECTだった。
-
[解決済み] Maven: assembly-pluginが全く実行されない
-
[解決済み] Javaコンパイラーエラー:ステートメントではありません