File 删除空目录或文件夹/子文件夹
我有以下文件夹/文件 A/B/C/D/giga.txt A/BB/ A/CC/DD/fifa.jpg A/ZZZ/1/a.txt A/ZZZ/2/b.png A/ZZZ/3/ 没用File 删除空目录或文件夹/子文件夹,file,gradle,directory,isnullorempty,File,Gradle,Directory,Isnullorempty,我有以下文件夹/文件 A/B/C/D/giga.txt A/BB/ A/CC/DD/fifa.jpg A/ZZZ/1/a.txt A/ZZZ/2/b.png A/ZZZ/3/ 没用 tasks.withType(Delete) { includeEmptyDirs = false } 没用 tasks.withType(Delete) { includeEmptyDirs = false } 我不想用Gradle>calling>Ant的方式,因为那是我最后的选择。另外,不希望通过为每个
tasks.withType(Delete) { includeEmptyDirs = false }
没用
tasks.withType(Delete) { includeEmptyDirs = false }
我不想用Gradle>calling>Ant的方式,因为那是我最后的选择。另外,不希望通过为每个空文件夹编写显式delete语句来删除每个空文件夹
案例2:
如果我运行以下命令:
delete fileTree (dir: "A", include: "**/*.txt")
上述命令将删除文件夹A下的任何.txt文件及其子文件夹。现在,这将使“A/ZZZ/1”成为“空文件夹”的有效候选者,我也想删除它。< P>使用下面的方法删除“A”下的空目录。使用Gradle 1.11:
task deleteEmptyDirs() {
def emptyDirs = []
fileTree (dir: "A").visit { def fileVisitDetails ->
def file = fileVisitDetails.file
if (file.isDirectory() && (file.list().length == 0)) {
emptyDirs << file
}
}
emptyDirs.each { dir -> dir.delete() }
}
task deleteEmptyDirs(){
def emptyDirs=[]
文件树(目录:“A”)。访问{def fileVisitDetails->
def file=fileVisitDetails.file
if(file.isDirectory()&&(file.list().length==0)){
emptyDirs dir.delete()}
}
<代码> > p>使用下面的方法删除“a”下的空目录。使用Gracle 1.11:
task deleteEmptyDirs() {
def emptyDirs = []
fileTree (dir: "A").visit { def fileVisitDetails ->
def file = fileVisitDetails.file
if (file.isDirectory() && (file.list().length == 0)) {
emptyDirs << file
}
}
emptyDirs.each { dir -> dir.delete() }
}
task deleteEmptyDirs(){
def emptyDirs=[]
文件树(目录:“A”)。访问{def fileVisitDetails->
def file=fileVisitDetails.file
if(file.isDirectory()&&(file.list().length==0)){
emptyDirs dir.delete()}
}
如果要删除所有本身仅包含空文件夹的文件夹,此代码可能会有所帮助
def emptyDirs = []
project.fileTree(dir: destdir).visit {
def File f = it.file
if (f.isDirectory() ) {
def children = project.fileTree(f).filter { it.isFile() }.files
if (children.size() == 0) {
emptyDirs << f
}
}
}
// reverse so that we do the deepest folders first
emptyDirs.reverseEach { it.delete() }
def emptyDirs=[]
project.fileTree(dir:destdir)。访问{
def File f=it.File
if(f.isDirectory()){
def children=project.fileTree(f).filter{it.isFile()}.files
if(children.size()==0){
emptyDirs如果要删除所有本身仅包含空文件夹的文件夹,此代码可能会有所帮助
def emptyDirs = []
project.fileTree(dir: destdir).visit {
def File f = it.file
if (f.isDirectory() ) {
def children = project.fileTree(f).filter { it.isFile() }.files
if (children.size() == 0) {
emptyDirs << f
}
}
}
// reverse so that we do the deepest folders first
emptyDirs.reverseEach { it.delete() }
def emptyDirs=[]
project.fileTree(dir:destdir)。访问{
def File f=it.File
if(f.isDirectory()){
def children=project.fileTree(f).filter{it.isFile()}.files
if(children.size()==0){
emptyDirs谢谢Mike,我会试试的。如果目录实际上没有被删除,请将it.delete()
替换为project.delete(it)
解决了这个问题。在我的例子中,我删除了空的源目录。这将删除最深的空目录,但不会删除包含它们的目录。谢谢Mike,我会尝试这样做。如果目录实际上没有被删除,请将it.delete()
替换为project.delete(it)
解决了这个问题。在我的例子中,我删除了空的源目录。这将删除最深的空目录,但不会删除包含这些目录的目录。对于没有实际删除目录的情况,请将it.delete()
替换为project.delete(it)
解决了这个问题。在我的例子中,我删除了空的源目录。对于那些没有实际删除的目录,用project.delete()替换。delete(it)
解决了这个问题。在我的例子中,我删除了空的源目录。