1. ホーム
  2. java

[解決済み] Java で、ファイルを作成しようとせずに、パスが有効かどうかを判断する方法はありますか?

2023-05-06 06:58:04

質問

ユーザが提供した文字列が有効なファイルパスかどうかを判断する必要があります (つまり、もし createNewFile() が成功するか例外を投げるかどうか)、しかし検証のためだけに作成された無用なファイルでファイル システムを肥大化させたくはありません。

ファイルの作成を試みずに、私が持っている文字列が有効なファイル パスであるかどうかを判断する方法はありますか?

有効なファイルパスの定義がOSによって異なることは承知していますが、以下のような手っ取り早い方法はないものでしょうか。 C:/foo または /foo を拒否し banana .

可能なアプローチは、ファイルの作成を試み、作成が成功したら最終的にそれを削除することかもしれませんが、同じ結果を得るためのよりエレガントな方法があることを望みます。

どのように解決するのですか?

これは、ディレクトリの存在もチェックすることになります。

File file = new File("c:\\cygwin\\cygwin.bat");
if (!file.isDirectory())
   file = file.getParentFile();
if (file.exists()){
    ...
}

file.canWrite()では、ディレクトリへの書き込み権限があるかどうかがはっきりしないような気がします。