Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 删除空目录或文件夹/子文件夹_File_Gradle_Directory_Isnullorempty - Fatal编程技术网

File 删除空目录或文件夹/子文件夹

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的方式,因为那是我最后的选择。另外,不希望通过为每个

我有以下文件夹/文件

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的方式,因为那是我最后的选择。另外,不希望通过为每个空文件夹编写显式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)
解决了这个问题。在我的例子中,我删除了空的源目录。