以下代码正在删除特定文件夹中的文件和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();
}
}
感谢, 射线。
答案 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(); }