java删除文件夹

想删除本地一个项目目录,结果windows说路径太长,不能删除。于是试了试java删除。一切ok。以后一定要抓紧时间学python。

/**
 * Created by rmiao on 4/21/2016.
 */
public class TestDel {

    public static void main(String[] args) throws IOException {
            String dest = "D:\\perforce\\workspace2\\EPC";
            File file = new File(dest);

            forceDelete(file);


    }

    private static void forceDelete(File file) throws IOException {
        if (file.isDirectory()){
            deleteDirectory(file);
        }else{
            boolean filePresent = file.exists();
            if(!file.delete()){
                if(!filePresent){
                    throw  new FileNotFoundException("File does note exist:"+file);
                }

                String message = "Unable to delete file:"+file;
                throw new IOException(message);

            }else{
                System.out.println("-"+file.getAbsolutePath());
            }

        }
    }
    public static void deleteDirectory(File directory) throws IOException{
        if (directory.exists()){
            cleanDirectory(directory);
        }
        if(!directory.delete()){
            String message = "Unable to delete directory "+directory+".";
            throw  new IOException(message);
        }
    }

    /**
     * Cleans a directory without deleting it.
     *
     * @param directory directory to clean
     * @throws IOException in case cleaning is unsuccessful
     */
    public static void cleanDirectory(File directory) throws IOException {
        if (!directory.exists()) {
            String message = directory + " does not exist";
            throw new IllegalArgumentException(message);
        }

        if (!directory.isDirectory()) {
            String message = directory + " is not a directory";
            throw new IllegalArgumentException(message);
        }

        File[] files = directory.listFiles();
        if (files == null) {  // null if security restricted
            throw new IOException("Failed to list contents of " + directory);
        }

        IOException exception = null;
        for (File file : files) {
            try {
                forceDelete(file);
            } catch (IOException ioe) {
                exception = ioe;
            }
        }

        if (null != exception) {
            throw exception;
        }
    }

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏菩提树下的杨过

silverlight动态读取txt文件/解析json数据/调用wcf示例

终于开始正式学习silverlight,虽然有点晚,但总算开始了,今天看了一下sdk,主要是想看下silverlight中如何动态调用数据,对于数据库的访问,s...

18110
来自专栏跟着阿笨一起玩NET

C# http Get/POST请求封装类

http://www.sufeinet.com/thread-3-1-1.html

1052
来自专栏高爽的专栏

Java序列化(一)

 Java序列化,一个日常开发中比较少用到的技术。正常情况下,JVM启动后,我们可以创建对象生存其内,JVM关闭后,我们创建过的对象都随之销毁,资源释...

1960
来自专栏Java大联盟

Spring Data MongoDB:Repository

使用Spring Data可以帮助我们快速构建项目,非常方便,Spring Data在数据持久层已经写好了常用功能,我们只需要定义一个接口去继承Spring D...

931
来自专栏开发技术

spring-boot-2.0.3不一样系列之源码篇 - run方法(三)之createApplicationContext,绝对有值得你看的地方

  此系列是针对springboot的启动,旨在于和大家一起来看看springboot启动的过程中到底做了一些什么事。如果大家对springboot的源码有所研...

1443
来自专栏精讲JAVA

接口方法上的注解无法被 @Aspect 声明的切面拦截的原因分析

在Spring中使用MyBatis的Mapper接口自动生成时,用一个自定义的注解标记在Mapper接口的方法中,再利用@Aspect定义一个切面,拦截这个注解...

1162
来自专栏菩提树下的杨过

C#以post方式调用struts rest-plugin service的问题

struts2: 玩转 rest-plugin 一文中,学习了用struts2开发restful service的方法,发现用c#以post方式调用时各种报错,...

2579
来自专栏java一日一条

FileOutputStream vs. FileWriter

当我们要用Java写文件时通常有两个方法:使用FileOutputStream或者FileWriter。

422
来自专栏*坤的Blog

DingTalk机器人C#代码

1145
来自专栏码匠的流水账

聊聊AbstractOMSProducer

io/openmessaging/rocketmq/producer/AbstractOMSProducer.java

391

扫码关注云+社区