[解決済み] JavaでgetPath()、getAbsolutePath()、getCanonicalPath()はどう違うのですか?
2022-03-16 16:40:05
質問
とはどう違うのですか?
getPath()
,
getAbsolutePath()
および
getCanonicalPath()
をJavaで使うのですか?
また、それぞれどのような場合に使用するのでしょうか?
どのように解決するのですか?
これらのファイル名について考えてみましょう。
C:\temp\file.txt
- これは、パス、絶対パス、カノニカルパスです。
.\file.txt
- これはパスです。絶対パスでも正規のパスでもない。
C:\temp\myapp\bin\..\\..\file.txt
- これはパスであり、絶対パスである。正規のパスではありません。
正規のパスは常に絶対パスです。
パスから正規パスに変換すると、絶対パスになります(通常、現在の作業ディレクトリにタックするので、例.
./file.txt
は次のようになります。
c:/temp/file.txt
). ファイルの正規パスは、単にパスを浄化するもので、次のようなものを削除して解決します。
..\
とシンボリックリンクを解決する(Unixの場合)。
また、nio.Pathsを使った次の例にも注目してください。
String canonical_path_string = "C:\\Windows\\System32\\";
String absolute_path_string = "C:\\Windows\\System32\\drivers\\..\\";
System.out.println(Paths.get(canonical_path_string).getParent());
System.out.println(Paths.get(absolute_path_string).getParent());
どちらのパスも同じ場所を参照していますが、出力は全く異なるものになります。
C:\Windows
C:\Windows\System32\drivers
関連
-
Java コンパイルエラー - スレッド "main" で例外 java.lang.Error: 未解決のコンパイル問題です。
-
IDEA パッケージステートメントの欠落
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] StringBuilderとStringBufferの違いについて
-
[解決済み] Java 8のmap()メソッドとflatMap()メソッドの違いは何ですか?
-
[解決済み] JavaにおけるSoftReferenceとWeakReferenceの違いは何ですか?
最新
-
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.util.NoSuchElementException
-
undefinedeclipse エラー。この行に複数のアノテーションが見つかりました: - 文字列を型解決に解決できない
-
Javaクラスローダーにソースコードから潜り込む
-
Eclipseプロンプトを実行する java仮想マシンを使用しない
-
VMの初期化中にエラーが発生しました java/lang/NoClassDefFoundError: java/lang/Object
-
アイデア Springboot Web プロジェクトを jar にパッケージ化する場合、Error: 無効または破損した jarfile x.jar 解決策
-
java 例外。Javaツールの初期化
-
ブラウザでの大容量ファイルスライスアップロード(Javaサーバサイド実装)
-
ローカルリソースのロードが許可されていない場合の解決策
-
Maven Pluginの実行がライフサイクル設定の対象外であるエラーの解決