如何从Java删除OSX上的文件?

时间:2011-12-09 22:53:52

标签: java macos file terminal delete-file

我尝试通过Java删除OSX上的文件但它不起作用。

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

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

您无需执行shell命令即可执行此操作。实际上,使用shell命令执行此操作将使您的应用程序特定于平台,而不是与平台无关。

只需创建对该文件的引用,然后调用delete()方法:

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

the File class上还有一些方法允许您create temporary files

正如Alexander的评论所指出的那样delete on exit functions应该避免,而Oracle支持页面上应该this bug/proposed fix

注意:所有文件访问(读取,写入,删除)都是通过SecurityManager运行的,因此如果运行应用程序的用户没有相关文件的必要安全权限,操作可能会失败。如果您只是让您的应用程序在用户空间中运行,只访问用户有权访问的文件,或者只处理临时文件,那么您应该没问题。

答案 1 :(得分:1)

正如normalocity提到java.io.File类有删除文件的方法

对于更高级的文件/目录操作,您可能需要从apache中查看FileUtils

答案 2 :(得分:1)

您可以执行此操作来删除文件。

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
}