既存のファイルが特定のディレクトリまたはそのサブディレクトリにあるかどうかを確認したいと思います。
2 つのファイル オブジェクトがあります。
File dir;
File file;
どちらも存在することが保証されています。仮定しましょう
dir = /tmp/dir
file = /tmp/dir/subdir1/subdir2/file.txt
このチェックで true を返したい
今のところ、私はこの方法でチェックを行っています:
String canonicalDir = dir.getCanonicalPath() + File.separator;
boolean subdir = file.getCanonicalPath().startsWith(canonicalDir);
これは私の限られたテストでは機能するようですが、一部のオペレーティング システムで問題が発生するかどうかはわかりません。getCanonicalPath() が処理しなければならない IOException をスローできることも気に入りません。
より良い方法はありますか?おそらくどこかの図書館に?
ありがとう