Javaでパスから冗長な部分を削除(正規化)する方法について記載します。
パスから冗長な部分を削除する方法
normalize を使用します。
パスに含まれる .(ドット) や ..(一階層上に移動)を削除して、パスを返します。
パスを正規化することで、アクセスしてはいけないファイル・ディレクトリへのアクセスを検知しやすくなります。
外部から入力されるパスの場合は、このメソッドを使用した後に、ファイル・ディレクトリへのアクセス権限のチェックを行うと安全です。
構文
normalize()
戻り値
Path:冗長な部分を削除したパス
実行例
1 2 3 4 5 6 7 8 |
// 冗長なパス Path p = Paths.get("/Users/./sample/../a.txt"); // パスを正規化 p = p.normalize(); // 正規化後のパス System.out.println(p); // /Users/a.txt |