Мне нужен правильный метод, чтобы проверить, представляет ли String
путь к файлу или каталогу. Какие допустимые имена каталогов в Android? Как оказалось, имена папок могут содержать '.'
chars, так как система понимает, есть ли файл или папка?
Проверьте, является ли путь файлом или папкой
Ответ 1
Предполагая, что path
является вашим String
.
File file = new File(path);
boolean exists = file.exists(); // Check if the file exists
boolean isDirectory = file.isDirectory(); // Check if it a directory
boolean isFile = file.isFile(); // Check if it a regular file
См. File
Javadoc
Или вы можете использовать класс 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 a directory
boolean isFile = Files.isRegularFile(file); // Check if it a regular file
Ответ 2
Очистите решение, оставаясь при помощи API nio:
Files.isDirectory(path)
Files.isRegularFile(path)
Ответ 3
Обратитесь к API-интерфейсу nio для выполнения этих проверок.
import java.nio.file.*;
static Boolean isDir(Path path) {
if (path == null || !Files.exists(path)) return false;
else return Files.isDirectory(path);
}
Ответ 4
String path = "Your_Path";
File f = new File(path);
if (f.isDirectory()){
}else if(f.isFile()){
}
Ответ 5
Чтобы проверить, содержит ли строка путь или файл программно, вы должны использовать методы API, такие как isFile(), isDirectory().
Как система понимает, есть ли файл или папка?
Я думаю, записи файлов и папок хранятся в структуре данных и управляются файловой системой.
Ответ 6
Невозможно сообщить системе, если 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
Ответ 7
private static boolean isValidFolderPath(String path) {
File file = new File(path);
if (!file.exists()) {
return file.mkdirs();
}
return true;
}
Ответ 8
public static boolean isDirectory(String path) {
return path !=null && new File(path).isDirectory();
}
Чтобы ответить на вопрос напрямую.