Grade 自定義 Task 實現 修復 java.io.IOException: Could not delet folder "xxx"

之前發佈過一篇文章 :Gradlep構建 出現 java.io.IOException: Could not delet folder “xxx”,這裏邊講的是 將報錯文件刪除就好,
後來總是遇到該問題,我就在想要不要弄成一鍵刪除的方式。於是想改用什麼方式實現自動刪除文件
首先想到了Python腳本 ,後來覺得AndroidStudio 中添加這個東西顯得不倫不類,後來想用Java 寫到測試單元中,emmm…可這樣顯得不夠逼格。於是gradle task 閃亮登場

具體步驟如下:

task delTask <<{
具體想法如下
	1.首先在項目下新建文件del.file,將報錯信息複製到文件中
	2.讀取del.file本地文件內容
	3.匹配到出錯的內容,截取文件所在全路徑
	4.執行文件夾刪除操作
}

具體代碼實現如下

task delTask{
        doLast{
            //讀取文件,並裝進List。
            def list = []
            new File('del.file').withReader('UTF-8') { reader ->
                reader.eachLine {
                    if (it.contains(">")) {
                        def pre = it.indexOf("'") +1
                        def aft = it.lastIndexOf("'")
                        list.add(it.substring(pre , aft))
                    }
                }
                File fileDel = new File(list.get(0))
                println(">>>>>> 要刪除的文件夾路徑:"+fileDel.getAbsolutePath())
                def isDel = fileDel.deleteDir()
                println(">>>>>> 文件夾是否刪除:"+isDel)
            }
        }
    }

將以上代碼放到build.gradle 中,執行構建

在這裏插入圖片描述

最後 ,執行gradle delTask 完美刪除,不用再去文件夾中尋找文件了
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章