java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > FileUtils.deleteQuietly()删除失效

FileUtils.deleteQuietly()删除失效的原因分析及解决

作者:雾林小妖

文章讨论了使用FileUtils.deleteQuietly方法删除文件时可能遇到的问题,包括文件被占用、权限问题和中文乱码问题,特别指出,如果文件路径含中文可能因编码问题导致路径错误,建议将项目编码设置为UTF-8解决乱码问题

问题概述

FileUtils.deleteQuietly(new File("E://test//1.txt"));删除文件不生效,也不报错。

常见原因如下

1、文件是存在的,但还是无法删除文件。

2、与权限无关,设置权限后还是无法删除。

3、文件被占用,造成无法删除,解除占用即可。

使用及原因分析

导入包,FileUtils.deleteQuietly需要使用org.apache.commons.io包支持。

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>

删除无效还有一种常备忽略的因素就是中文乱码:如下情况

从图中可以看出,中文展示为乱码,但是输出乱码了。

这种情况就会造成,FileUtils.deleteQuietly如果传入的路径包括中文,就是造成因乱码路径失效。

解决办法

在setting中设置工程的编码集,错误的编码集如下:

从图中可以看出,出现了一下Project Encoding参数为GBK。

将GBK修改成UTF-8保存即可解决这个问题。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文