2017-08-25 73 views
1

folderPathにあるファイルを削除しようとしています。しかし、私は名前が "Jenkins"であるものだけを削除したい。
リストで定義してそのファイルのみを削除する方法。Groovyは特定のファイルをリストから削除します

例:Cでは
:ヒントについて

Files

import groovy.io.FileType 

String folderPath = "C:\\test" + "\\" + "test" 
def list = [] 
def dir = new File("$folderPath") 
dir.eachFileRecurse (FileType.FILES) { file -> 
    list << file 
} 
list.each { 
println it.findAll() == "Jenkins" // Just files witch include in list "Jenkins" name 
} 

ありがとう:\テスト\テストは3つのファイルを持って、名前でジェンキンスを持っているものを削除したいです!

答えて

1

ここに行く:

使用下の2つのいずれか:1以下

import groovy.io.FileType 

String folderPath = "C:/test/test" 
new File(folderPath).eachFile (FileType.FILES) { file -> 
//Delete file if file name contains Jenkins 
    if (file.name.contains('Jenkins')) file.delete() 
} 

または

はクールFileNameFinderクラス

String folderPath = "C:/test/test" 
def files = new FileNameFinder().getFileNames(folderPath, '**/*Jenkins*') 
println files 
files.each { new File(it).delete()} 
+0

を使用して、それは非常に簡単でした:)ありがとう –

+0

@ジョンドー、それが役立つことを嬉しく思います。 – Rao

+2

'file.path.contains( 'Jenkins')'は危険です。あなたは 'file.name.contains( 'Jenkins')'を使うべきです。 'folderPath =" C:/ Jenkins/test "'とすれば、ループ内のすべてのファイルが削除されます。 –

関連する問題