java在Windows中删除目录

java在Windows中删除目录,第1张

概述java在Windows中删除目录

我尝试使用java删除一个目录,这里是我的代码

public static voID delDirectory(String path) throws IOException { Path p = Paths.get(path); delHelp(p); } private static voID delHelp(Path p) throws IOException { if (!p.tofile().exists()) { return; } else if(p.tofile().isfile()){ log.deBUG("delete file:" + p.toabsolutePath().toString()); files.delete(p); }else if(p.tofile().isDirectory()){ for(Path subPath:files.newDirectoryStream(p)){ delHelp(subPath); } log.deBUG("delete directory:"+p.toabsolutePath().toString()); files.delete(p); } }

在类Unix系统上,它运行起来。 在windows上,代码files.delete(p)实际上将目录移动到垃圾桶,所以当删除父目录时,代码将抛出exception: Exception in thread "main" java.nio.file.DirectoryNotEmptyException

任何关于这个os依赖的行为的想法? 我该如何解决这个问题?

files.createTempDirectory(“”)抛出NullPointerException

c编程检查是否按下键不停止程序

检测应用程序挂起

将stdout C文件streamredirect到缓冲区

需要将maven的$ {project.basedir}从单个反斜杠转换为double

为什么不是config.cache_classes = false工作?

windows安装rmagick错误

在使用C#/ .Net时,只读如何影响目录?

学习windows服务与C + +

从windows中的提示运行python脚本

实际的问题是,您不关闭DirectoryStream ,当您尝试删除DirectoryNotEmptyException时导致DirectoryNotEmptyException 。

从Javadoc :

当不使用try-with-resources构造时,应在迭代完成后调用目录流的close方法,以释放为打开的目录保存的任何资源。

所以你可以在完成之后调用close() ,或者在try-with-resources中使用它:

private static voID delHelp(Path p) throws IOException { if (!p.tofile().exists()) { return; } else if(p.tofile().isfile()){ files.delete(p); } else if(p.tofile().isDirectory()){ try (DirectoryStream<Path> ds = files.newDirectoryStream(p)) { for (Path subPath : ds){ delHelp(subPath); } } files.delete(p); } }

请首先将此Jar添加到您的项目中。

下面的代码也可以按照你的要求完美的工作。

即在窗口机上工作,不应该去垃圾/回收站

public static voID main(String[] args) { try { delDirectory("E:\RecursiveDataContainDirectoryname"); } catch (Exception e) { e.printstacktrace(); } } public static voID delDirectory(String path) throws IOException { Path p = Paths.get(path); fileDeleteStrategy.FORCE.delete(p.tofile()); }

总结

以上是内存溢出为你收集整理的java在Windows中删除目录全部内容,希望文章能够帮你解决java在Windows中删除目录所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1271051.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存