В Java file.delete() возвращает true или false, где File file относится к несуществующему файлу?
file.delete()
true
false
File file
Я понимаю, что это довольно простой вопрос, и его очень легко пройти, но я получаю странные результаты и буду признателен за подтверждение.
С 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.
Не приводит ли это к исключению 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
Официальный 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
итак, ложь.