Как удалить файл на OSX из Java? - PullRequest
0 голосов
/ 10 декабря 2011

Я пытаюсь удалить файл в OSX через Java, но он не работает.

Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(new String[] { "/bin/bash", "-c", "rm file.pdf" });  

Есть идеи?

Ответы [ 3 ]

3 голосов
/ 10 декабря 2011

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

Просто создайте ссылку на файл и вызовите метод delete () :

File fileToDelete = new File("/path/to/file").delete();

Существуют также методы класса File , которые позволяют создавать временные файлы .

Следует избегать удаления при выходе из функций , как отмечено в комментарии Александра, и это ошибка / предлагаемое исправление на страницах поддержки Oracle.

ПРИМЕЧАНИЕ. Доступ ко всем файлам (чтение, запись, удаление) выполняется через SecurityManager , поэтому, если пользователь, под которым работает ваше приложение, не имеет необходимых прав безопасности для рассматриваемого файла эти операции могут потерпеть неудачу. Если вы просто поддерживаете свое приложение в пользовательском пространстве, обращаетесь только к тем файлам, к которым у него есть доступ, или имеете дело только с временными файлами, у вас все будет в порядке.

1 голос
/ 10 декабря 2011

Вы можете сделать это, чтобы удалить ваш файл.

try{
  File f1 = new File("path to file"); 
  boolean success=f1.delete();
  if(!success){
    // Notify user that the file 
  }
}catch(SecurityException ex){
 // No sufficient rights to do this operation
}
1 голос
/ 10 декабря 2011

Как normalocity упомянул java.io.File класс имеет метод для удаления файла

Для более сложных операций с файлами / каталогами вы можете проверить FileUtils из apache.

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