Проверьте, представляет ли путь файл или папку

java android file path directory

123191 просмотра

8 ответа

31946 Репутация автора

Мне нужен правильный метод, чтобы проверить, Stringпредставляет ли путь к файлу или каталогу. Какие допустимые имена каталогов в Android? Как выясняется, имена папок могут содержать '.'символы, так как система понимает, есть ли файл или папка?

Автор: Egor Источник Размещён: 08.10.2012 11:06

Ответы (8)


181 плюса

32410 Репутация автора

Решение

Предполагая 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

Смотри FileJavadoc


Или вы можете использовать класс 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
Автор: Baz Размещён: 08.10.2012 11:07

2 плюса

23686 Репутация автора

Чтобы проверить, представляет ли строка путь или файл программно, вы должны использовать методы API, такие как isFile(), isDirectory().

Как система понимает, есть ли файл или папка?

Я предполагаю, что записи файлов и папок хранятся в структуре данных и управляются файловой системой.

Автор: Juvanis Размещён: 08.10.2012 11:09

4 плюса

30339 Репутация автора

String path = "Your_Path";
File f = new File(path);

if (f.isDirectory()){



  }else if(f.isFile()){



  }
Автор: Kumar Vivek Mitra Размещён: 08.10.2012 11:11

20 плюса

1103 Репутация автора

Пожалуйста, придерживайтесь API nio для выполнения этих проверок

import java.nio.file.*;

static Boolean isDir(Path path) {
  if (path == null || !Files.exists(path)) return false;
  else return Files.isDirectory(path);
}
Автор: Sheng Размещён: 14.01.2015 09:10

47 плюса

10295 Репутация автора

Чистый раствор при использовании nio API:

Files.isDirectory(path)
Files.isRegularFile(path)
Автор: pgsandstrom Размещён: 16.12.2015 12:51

1 плюс

3127 Репутация автора

Система не может сказать вам, если a 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

Автор: Emdadul Sawon Размещён: 25.09.2017 10:10

0 плюса

51 Репутация автора

   private static boolean isValidFolderPath(String path) {
    File file = new File(path);
    if (!file.exists()) {
      return file.mkdirs();
    }
    return true;
  }
Автор: Kaweesi Joseph Размещён: 17.05.2018 02:35

0 плюса

3490 Репутация автора

public static boolean isDirectory(String path) {
    return path !=null && new File(path).isDirectory();
}

Чтобы ответить на вопрос напрямую.

Автор: gerardw Размещён: 06.02.2019 02:26
Вопросы из категории :
32x32