プログラムが現在実行しているプラットフォームに関係なく、指定されたパスが絶対パスかどうかを調べるJavaがありますか。 LinuxではJava:OSに関係なくパスが絶対パスかどうかを調べる方法
::だから、私が欲しいのは、おそらく次の例のようなものです。Windowsの
new File("/home/").isAbsolute() // Should return true.
new File("C:/My Documents").isAbsolute() // Should *also* return true.
:
new File("C:/Documents").isAbsolute() // Should return true.
new File("/home/").isAbsolute() // Should *also* return true.
私はおそらくこれで周りを取得するために何かをコーディングすることができますが、私この問題を解決するためにJavaで提供される組み込みクラスを知っている人がいるかどうかを知りたいだけでした。それとも誰もこの問題に遭遇したことはありますか?そしてそれをどうやって解決しましたか?
ありがとうございます!
、 "C:/マイドキュメント" のようなパスは、おそらく無効であり、そしてそれは確かに絶対的ではありません。 POSIX標準を実装しているシステムでは、すべてのパスが単一の 'ルート'の下に存在するため、絶対パスはそのルートから始まります。したがって絶対パスは常に "/"で始まります。プロセスの現在の作業ディレクトリとの相対的なものが他にあります。 Linuxでは、 "C:/ ..."は現在の作業ディレクトリ内で "C:"という名前のディレクトリを意味すると解釈されますが、これはほとんどナンセンスです。 – SingleNegationElimination
あなたの質問はほとんど意味がありません。すべてのパスが絶対的な仮想オペレーティングシステムを想像してみてください。このオペレーティングシステムにJavaがあるとしましょう。したがって、要件を満たすには、プログラムが現在実行しているプラットフォームに関係なく、常にtrueを返すisFileAbsolute()メソッドが必要です。実装は簡単ですが、意味がありません。 –
私は、ユーザがリモートコンピュータ上の作業ディレクトリを設定する状況があります。リモートコンピュータはUnixまたはWindowsを実行している可能性があります(最も一般的なシナリオはローカルマシンはWindowsで、リモートマシンはUnixです)。ユーザー指定のパスを検証する必要があり、パスが絶対パスかどうかを判断する必要があります。 –