Ответ 1
Чтобы удалить каталог src
и все его содержимое:
task deleteGraphicsAssets(type: Delete) {
delete "src"
}
Я не могу понять, как удалить все содержимое каталога.
Для очистки каталога я хочу удалить все файлы и каталоги внутри него: я хочу стереть все, что есть внутри (файлы и каталоги).
Я попробовал это с задачей удаления, но я не могу понять, как это сделать, а также удалить каталоги, а не только файлы. Я пробовал разные способы указать каталоги, но ничего не работает.
task deleteGraphicsAssets(type:Delete) {
delete fileTree('src').include('**/*')
}
.
task deleteGraphicsAssets(type:Delete) {
delete fileTree('src').include('/')
}
.
task deleteGraphicsAssets(type:Delete) {
delete fileTree('src').include('*')
}
Любая помощь оценивается!
Изменить:
Это работает - но это похоже на взлом.
task deleteGraphicsAssets(type: Delete) {
def dirName = "src"
delete dirName
doLast {
file(dirName).mkdirs()
}
}
Я искал что-то вроде:
task deleteGraphicsAssets(type: Delete) {
deleteContentsOfDirectory "src"
}
или
task deleteGraphicsAssets(type: Delete) {
delete {dir : "src", keepRoot : true }
}
Чтобы удалить каталог src
и все его содержимое:
task deleteGraphicsAssets(type: Delete) {
delete "src"
}
Groovy улучшает класс File несколькими способами. Вы можете удалить каталог со всеми его подкаталогами и файлами с помощью метода deleteDir().
task deletebin << {
def binDir = new File('bin')
binDir.deleteDir()
}
Следующее приведет к удалению всего содержимого из папки src, но оставляет папку самой нетронутой:
task deleteGraphicsAssets(type: Delete) {
def dirName = "src"
file( dirName ).list().each{
f ->
delete "${dirName}/${f}"
}
}
clean {
delete += fileTree('src').include('**/*')
}
Эта конфигурация "чистой" задачи работает.
С риском воскрешения ответной темы существует относительно простой способ сделать это.
Эта задача удалит все файлы и каталоги под "src" без прохождения дерева файлов и без удаления в 'src' dir
task deleteGraphicsAssets(type:Delete) {
delete file('src').listFiles()
}
Найдено с использованием FileTree # visit работал.
ConfigurableFileTree ft = fileTree('someDir')
ft.include("xxx")
ft.exclude("yyy")
task delteFilesOnly() {
doLast {
//// for test
//ft.each { File file ->
// println "===== " + file.absolutePath
//}
delete ft
}
}
task deleteFilesAndDirs(){
doLast {
ft.visit { FileVisitDetails fvd ->
//// for test
//println "----- " + file.absolutePath
delete fvd.file
}
}
}