回答:
仮定path
はあなたString
です。
File file = new File(path);
boolean exists = file.exists(); // Check if the file exists
boolean isDirectory = file.isDirectory(); // Check if it's a directory
boolean isFile = file.isFile(); // Check if it's a regular file
または、NIOクラスFiles
を使用して、次のようなことを確認できます。
Path file = new File(path).toPath();
boolean exists = Files.exists(file); // Check if the file exists
boolean isDirectory = Files.isDirectory(file); // Check if it's a directory
boolean isFile = Files.isRegularFile(file); // Check if it's a regular file
path
私の例ではString
です。File
インスタンスを作成できないのはなぜですか?これはファイルシステム上の何も変更しないことに注意してください。
root
ファイルである可能性があることに注意してください。ファイルに.something
拡張子が付いているとは限りません。
これらのチェックを実行するには、nio APIに固執してください
import java.nio.file.*;
static Boolean isDir(Path path) {
if (path == null || !Files.exists(path)) return false;
else return Files.isDirectory(path);
}
String path = "Your_Path";
File f = new File(path);
if (f.isDirectory()){
}else if(f.isFile()){
}
システムがどうかを指示するための方法はありませんString
表すfile
か、directory
それがあれば、存在しないファイルシステムでは。例えば:
Path path = Paths.get("/some/path/to/dir");
System.out.println(Files.isDirectory(path)); // return false
System.out.println(Files.isRegularFile(path)); // return false
そして、次の例の場合:
Path path = Paths.get("/some/path/to/dir/file.txt");
System.out.println(Files.isDirectory(path)); //return false
System.out.println(Files.isRegularFile(path)); // return false
したがって、どちらの場合もシステムがfalseを返すことがわかります。これは、両方のために真であるjava.io.File
とjava.nio.file.Path
private static boolean isValidFolderPath(String path) {
File file = new File(path);
if (!file.exists()) {
return file.mkdirs();
}
return true;
}