Возвращает ли file.delete () значение true или false для несуществующего файла? - PullRequest
10 голосов
/ 21 ноября 2008

В Java file.delete() возвращает true или false, где File file относится к несуществующему файлу?

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

Ответы [ 3 ]

9 голосов
/ 21 ноября 2008

С http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html#delete():

Возвращает: true, если и только если файл или каталог были успешно удалены; ложь в противном случае

Следовательно, он должен возвращать false для несуществующего файла. Следующий тест подтверждает это:

import java.io.File;

public class FileTest
{
    public static void main(String[] args)
    {
        File file = new File("non-existent file");

        boolean result = file.delete();
        System.out.println(result);
    }
}

Компиляция и запуск этого кода выдает false.

5 голосов
/ 21 ноября 2008

Не приводит ли это к исключению FileNotFoundException?

EDIT:

Действительно, это приводит к ложному:

import java.io.File;

public class FileDoesNotExistTest {


  public static void main( String[] args ) {
    final boolean result = new File( "test" ).delete();
    System.out.println( "result: |" + result + "|" );
  }
}

отпечатков false

2 голосов
/ 21 ноября 2008

Официальный Javadoc:

Deletes the file or directory denoted by this abstract pathname. If this pathname denotes a directory, then the directory must be empty in order to be deleted.

Returns:
    true if and only if the file or directory is successfully deleted; false otherwise 
Throws:
    SecurityException - If a security manager exists and its SecurityManager.checkDelete(java.lang.String) method denies delete access to the file

итак, ложь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...