2016-06-22 7 views
1

ich eine gradle Aufgabe haben, die Dateien löscht ein bestimmtes Muster in ihrem Namen übereinstimmt, gefundenGradle: Löschen von Dateien älter als eine bestimmte Zeit

task deleteTempFiles(type: Delete) { 
    tasks['clean'].dependsOn(it) 
    delete fileTree(dir: '..', include: '**/tempfile*.tmp') 
} 

Ich möchte Dateien löschen, die älter sind als, sagen wir mal, 2 Stunden oder 24 Stunden. Es könnte 2 Tage für diese Angelegenheit sein. Was ist der einfachste Weg, um es in Großbuchstaben zu tun?

+0

ich mir vorstellen, sollten Sie in der Lage sein, eine gewisse Variation von 'filetree.matching zu verwenden()' und einen Verschluss, der ' – RaGe

Antwort

1
task deleteTempFiles(type: Delete) { 

    def cutoff = new Date().minus(1); //24 hrs ago 

    delete fileTree (dir: '..') 
     .matching{ include '**/tempfile*.tmp' } 
     .findAll { 
      def filedate = new Date (it.lastModified()) 
      filedate.before(cutoff) 
     } 
} 
+0

Was Dateien, die älter als 8 Stunden file.getlastmodified' verwendet? – user3111525

+1

@ user3111525, es ist wahrscheinlich einfach zu tun, nicht wahr? – Opal

+0

Suche ist dein Freund. http://stackoverflow.com/questions/21166927/incrementing-date-object-by-hours-minutes-in-groovy http://stackoverflow.com/questions/25046910/how-do-i-subtract-minutes-from -current-time – RaGe

Verwandte Themen