2013-06-20 4 views
1

Я хочу использовать fileScanner AntBuilder для перебора каталогов.Сканирование каталогов в groovy с файлом сканера муравейника

Мой код выглядит следующим образом:

scanner = new AntBuilder().fileScanner { 
    fileset(dir:sourcedir, casesensitive:false) { 
     include(name:pattern) 
     type(type:'dir') 
    } 
} 

Я хочу, чтобы петли со сканером только на каталогах, например:

for (file in scanner) { 
    assert file.directory == true 
} 

Любая идея? Спасибо !!!!!!!!

ответ

2

Вот как сделать это с fileScanner

scanner = new AntBuilder().fileScanner { 
    fileset(dir:sourcedir, casesensitive:false) { 
     include(name:pattern) 
    } 
} 

// Just the directories 
scanner.directories().each { 
    println it.name 
} 

Вы также можете сделать это с помощью Groovy вызовов:

def dirs = [] 
new File(sourcedir).eachDirRecurse { 
    // Check the name here, obviously the Ant pattern you have probably won't work 
    if(it.name ==~ pattern) dirs << it 
} 

dirs.each { 
    println it.name 
} 
+0

Спасибо! оба варианта работают! (Я использовал первый ...) – user1805755