Предотвратить удаление Dir - PullRequest
0 голосов
/ 17 июля 2011

следующий код удаляет файлы и 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 ]

1 голос
/ 17 июля 2011
        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();
                }
            }
        }

Имеет смысл?:)

1 голос
/ 17 июля 2011

Легко ...

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

FWIW - ваш текущий код удалит только пустых подкаталогов. Согласно javadoc, удаление непустого каталога не удастся; то есть возврат false.

0 голосов
/ 17 июля 2011

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

 if (!listOfFiles[i].isDirectory()) { listOfFiles[i].delete(); } 
0 голосов
/ 17 июля 2011

Вы должны использовать File.isDirectory

if(!listOfFiles[i].isDirectory())
{
    logger.debug("File name=" + listOfFiles[i].toString() + " is Deleted!");
    listOfFiles[i].delete();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...