【问题标题】:How to delete file on OSX from Java?如何从 Java 中删除 OSX 上的文件?
【发布时间】:2011-12-09 22:53:52
【问题描述】:

我尝试通过 Java 在 OSX 上删除一个文件,但它不起作用。

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

有什么想法吗?

【问题讨论】:

标签: java macos file terminal delete-file


【解决方案1】:

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

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

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

the File class 上还有一些方法可以让你create temporary files

应避免使用 delete on exit functions,正如 Alexander 的评论所指出的,以及 Oracle 支持页面上的 this bug/proposed fix

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

【讨论】:

【解决方案2】:

您可以这样做来删除您的文件。

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
}

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    • 我建议你看看 Apache 的 FileUtils。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 2013-06-27
    • 2014-05-02
    • 1970-01-01
    • 2011-01-10
    相关资源
    最近更新 更多