使用递归删除源文件名长度大于系统支持的长度

import java.io.File;  

/** 
 * 解决无限创建的子文件夹删除不了的问题 
 * @author Treasure 
 * 
 */  
public class ForeverDelete   
{  
    //删除文件夹方法  
    private void deleteDir(File file)   
    {  
        if (file.listFiles().length == 0)  
            file.getAbsoluteFile().delete();  
    }  
    //删除文件方法  
    public void deleteFile(File file)   
    {  
        File[] temp = file.listFiles();  
        for (int i = 0; i < temp.length; i++)   
        {  
            System.out.println(temp[i].getName());  
            if (temp[i].isDirectory())   
            {  
                if (temp[i].listFiles().length != 0) 
                    this.deleteFile(temp[i]);
                    this.deleteDir(temp[i]);
                     //如果 文件夹里不为空 递归调用 方法  

            }   
            else   
            {  
                temp[i].delete();  
            }  
        }  
    }  

    public static void main(String[] args)   
    {  
        ForeverDelete m = new ForeverDelete();  
        m.deleteFile(new File("D:\\StudioProjects\\hello"));  
    }  
}  

你可能感兴趣的:(Java)