防止Dir删除

时间:2011-07-17 07:25:04

标签: java file file-io

以下代码正在删除特定文件夹中的文件和DIRS。 我怎么能调整它,所以它只删除文件夹中的文件而不删除 dirs 里面的文件

代码:

            File folder = new File(path);
            File[] listOfFiles = folder.listFiles();
            if (listOfFiles != null)
            {
                for (int i = 0; i < listOfFiles.length; i++)
                {
                    logger.debug("File name=" + listOfFiles[i].toString() + " is Deleted!");
                    listOfFiles[i].delete();
                }
            }

感谢, 射线。

4 个答案:

答案 0 :(得分:1)

容易......

if (!listOfFiles[i].isDirectory()) {
    listOfFiles[i].delete();
}

FWIW - 您当前的代码只会删除子目录。根据javadoc,删除非空目录将失败;即返回false

答案 1 :(得分:1)

        File folder = new File(path);
        File[] listOfFiles = folder.listFiles();
        if (listOfFiles != null)
        {
            for (int i = 0; i < listOfFiles.length; i++)
            {                    
                if( !listOfFiles[i].isDirectory() ){   // if not a directory...
                    logger.debug("File name=" + listOfFiles[i].toString() + " is Deleted!");
                    listOfFiles[i].delete();
                }
            }
        }

有意义吗? :)

答案 2 :(得分:0)

您必须使用File.isDirectory

if(!listOfFiles[i].isDirectory())
{
    logger.debug("File name=" + listOfFiles[i].toString() + " is Deleted!");
    listOfFiles[i].delete();
}

答案 3 :(得分:0)

http://download.oracle.com/javase/6/docs/api/java/io/File.html#isDirectory()

 if (!listOfFiles[i].isDirectory()) { listOfFiles[i].delete(); }