2016-08-18 67 views
0

我嘗試刪除'foo/dir'中名稱爲'public- someHash'的目錄。 'SomeHash'是動態創建的(例如'dsflsdfn')並且總是新的。我試圖使用'fileTree',但目錄仍然存在。有我的代碼:無法通過Gradle中的掩碼刪除目錄

tasks.create(name: 'delete', type : Delete) { 
     delete fileTree(dir: 'foo/dir/', include: 'public-*/**') 
} 

我的面具有什麼問題?

UDP:我也有類似的任務Ant和一切工作正常:

<target name="delete"> 
     <delete includeemptydirs="true"> 
      <fileset dir="foo/dir/"> 
      <include name="public-*/**"/> 
      </fileset> 
     </delete> 
</target> 

回答

0

編輯:道歉,因爲原來的答案是基於問題的誤讀。

下面是做到這一點的一種方式,但不是最優雅:

task myDelete(type: Delete) { 
    def files = new HashSet() 

    new File('foo/dir').eachFile { file -> 
     if (file.isDirectory() && (file.name ==~ /public-.*/)) { 
      files << file 
     } 
    } 

    delete files 
} 
+0

它並不能幫助。有趣的是,println fileTree(dir:'foo/bar')顯示'目錄'src/main/webapp'' – bearhunterUA

+0

我的歉意。我誤解了這個問題。請嘗試新的答案。 (這裏假定目標目錄是在'foo/dir'中,而不是在子目錄中。) –

+0

是的,它可以工作,非常感謝! – bearhunterUA