Step into Gradle - 06 - 文件管理

目录

摘要

File Api,FileCollection Api,Copy

文件管理

创建文件夹

task optFile << {
    //根目录为当前 Project
    def classesDir = new File('build/classes')
    classesDir.mkdirs()
}

File API

task localFile << {
    // Using a relative path
    File configFile = file('src/config.xml')

    // Using an absolute path
    configFile = file(configFile.absolutePath)

    // Using a File object with a relative path
    configFile = file(new File('src/config.xml'))

    // File collections
    FileCollection collection = files('src/file1.txt',
            new File('src/file2.txt'),
            ['src/file3.txt', 'src/file4.txt'])
    // Iterate over the files in the collection
    collection.each {File file ->
        println file.name
    }
}

运行

gradle -q localFile

输出

file1.txt
file2.txt
file3.txt
file4.txt

FileCollection API

task listFile << {
    File srcDir

    // Create a file collection using a closure
    FileCollection collection = files { srcDir.listFiles() }
    collection + files('src3')

    srcDir = file('src')
    println "Contents of $srcDir.name"  //Contents of src
    collection.collect { relativePath(it) }.sort().each { println it }
    println "============================"

    srcDir = file('src2')
    println "Contents of $srcDir.name"  //Contents of src2
    collection.collect { relativePath(it) }.sort().each { println it }
}

//运行
gradle -q listFile

复制文件

第一种

Copy myCopy = task(myCopy, type: Copy)
myCopy.from 'resources'
myCopy.into 'target'
myCopy.include('**/*.txt', '**/*.xml', '**/*.properties')

运行

gradle -q myCopy

第二种

task copy2(type: Copy) {
    from 'resources'
    into 'target'
    include('**/*.txt', '**/*.xml', '**/*.properties')
}

运行

gradle -q copy2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值