файла - класс file java




Как проверить, существует ли файл на Java? (14)

Если вы хотите проверить File в каталоге dir

String directoryPath = dir.getAbsolutePath()
boolean check = new File(new File(directoryPath), aFile.getName()).exists();

и check результат check

Как проверить, существует ли файл, прежде чем открывать его для чтения на Java? (эквивалент -e $filename Perl).

Единственный подобный вопрос в SO касается записи файла и, таким образом, ответа с использованием FileWriter, который здесь явно не применим.

Если возможно, я предпочел бы, чтобы настоящий вызов API возвращал true / false, а не какой-то «Call API», чтобы открыть файл и поймать, когда он выдает исключение, которое вы проверяете «нет файла» в тексте », но я могу жить с последний.


Вы можете использовать следующее: File.exists()


Вы можете сделать это таким образом

import java.nio.file.Paths;

String file = "myfile.sss";
if(Paths.get(file).toFile().isFile()){
    //...do somethinh
}

Для меня комбинация принятого ответа Sean AO Harney и итоговый комментарий Cort3z, по-видимому, являются лучшим решением.

Использовал следующий фрагмент:

File f = new File(filePathString);
if(f.exists() && f.isFile()) {
    //do something ...
}

Надеюсь, это может помочь кому-то.


Использование Java 8:

if(Files.exists(Paths.get(filePathString))) { 
    // do something
}

Используя nio в Java SE 7,

import java.nio.file.*;

Path path = Paths.get(filePathString);

if (Files.exists(path)) {
  // file exist
}

if (Files.notExists(path)) {
  // file is not exist
}

Если оба существуют, а notExists возвращают false, существование файла не может быть проверено. (возможно, нет права доступа к этому пути)

Вы можете проверить, является ли путь каталогом или обычным файлом.

if (Files.isDirectory(path)) {
  // path is directory
}

if (Files.isRegularFile(path)) {
  // path is regular file
}

Проверьте этот учебник по Java SE 7 .


Не используйте конструктор файлов со String.
Это может не сработать!
Вместо этого используйте URI:

File f = new File(new URI("file:///"+filePathString.replace('\\', '/')));
if(f.exists() && !f.isDirectory()) { 
    // to do
}

Не. Просто FileNotFoundException. Файловая система должна проверить, существует ли файл в любом случае. Нет смысла делать все это дважды, и несколько причин этого не приводят, например:

  • удвоить код
  • проблема временного окна, при которой файл может существовать при тестировании, но не при открытии, или наоборот, и
  • тот факт, что, как показывает этот вопрос, вы можете сделать неправильный тест и получить неправильный ответ.

Не пытайтесь вторгаться в систему. Он знает. И не пытайтесь предсказать будущее. В общем, лучший способ проверить, доступен ли какой-либо ресурс, - просто попытаться его использовать.



Чтобы проверить, существует ли файл, просто импортируйте библиотеку java.io. *

File f = new File(“C:\\File Path”);

if(f.exists()){
        System.out.println(“Exists”);        //if file exists
}else{
        System.out.println(“Doesn't exist”);         //if file doesn't exist
}

Источник: http://newsdivariotipo.altervista.org/java-come-controllare-se-un-file-esiste/


Я знаю, что я немного опаздываю в этой теме. Однако, вот мой ответ, действительный с Java 7 и выше.

Следующий фрагмент

if(Files.isRegularFile(Paths.get(pathToFile))) {
    // do something
}

отлично удовлетворительно, потому что метод isRegularFile возвращает false если файл не существует. Поэтому нет необходимости проверять, есть ли Files.exists(...) .

Обратите внимание, что другие параметры - это опции, указывающие, как следует обрабатывать ссылки. По умолчанию используются символические ссылки.

Из документации Java Oracle


первый хит для «java-файла существует» в google:

import java.io.*;

public class FileTest {
    public static void main(String args[]) {
        File f = new File(args[0]);
        System.out.println(f + (f.exists()? " is found " : " is missing "));
    }
}

File f = new File(filePathString); 

Это не приведет к созданию физического файла. Просто создаст объект класса File. Чтобы физически создать файл, вы должны явно его создать:

f.createNewFile();

Таким образом, f.exists() может использоваться для проверки наличия или отсутствия такого файла.


f.isFile() && f.canRead()






io