| 

.NET C# Java Javascript Exception

1
Ich arbeite das erste mal mit groovy und soll in einer xml datei gucken, ob errors oder failures sind.
und wenn ja dann soll die datei geloescht werden.
Mein Problem ist jetzt, das auch der Ordner geloescht wird /test-reports/,
der soll aber nicht geloescht werden,sondern nur die *.xml Datei, die das beinhaltet.
Das Problem ist das mehrere xml datein in dem ordner sind und auch wenn sie "error" oder "failure" nicht beinhalten ,werden sie jetzt mit geloescht,weil ja der ganze ordner geloescht wird.

Kann mir bitte jemand helfen?

def RAPTOR_HOME = '/localhome/kana/p4/dev/BOT/'
def path = RAPTOR_HOME + '/antBuilds/dailybuilds/test-reports/'
def file = new File(path)

file.eachFileRecurse{
if(it ==~ /.+\/TEST-.+\.xml/ ) {
println ("Datei: $it")
def xml = new XmlParser().parse(it)
println (xml)
it.eachLine{
println it
if( it.contains("<error") || it.contains("<failure")){
file.deleteDir()
}
}
}
}
23.07.2012
tanzverfuehrung 147 8
file.deleteDir() löscht nun mal das Verzeichnis!
JEwen 23.07.2012
ja aber nur eine Methode file.delete() gibt es ja nicht. also wie kann ich das machen?
tanzverfuehrung 23.07.2012
Hm, also ich bekomme beim googln, nach file delete und groovy folgendes:
String filename = "test.txt"
// this deletes the file test.txt
boolean fileSuccessfullyDeleted = new File
(filename).delete()

Also, ein file.delete() Scheint es zu geben!
JEwen 23.07.2012
ich kriege auch keine Exception das es die MEthode nicht gibt aber in der api ( http://groovy.codehaus.org/groovy-jdk/java/io/File.html )steht die methode nicht drin und wenn ich das so mache, wird auch nichts geloescht
tanzverfuehrung 23.07.2012
1
Unter dem Link den Du angibst, steht ziemlich weit unten, das folgende Beispiel:
// remove all *.bak files in baseDir
baseDir.eachFileMatch FILES, ~/.*\.bak/, { File bak -> bak.delete() }
Das delete() muss direkt auf dem Fileobject erfolgen. Daher ja auch im ersten Beispiel new File("xxx.xxx").delete()

JEwen 23.07.2012
1 Antwort
1
ich habe es jetzt. danke JEwen!
Es war nicht schwer ,habe nur mal wieder bissel laenger gebraucht ^^
def RAPTOR_HOME = '/localhome/kana/p4/dev/BOT/'
def path = RAPTOR_HOME + '/antBuilds/dailybuilds/test-reports/'
def file = new File(path)

file.eachFileRecurse{
if(it ==~ /.+\/TEST-.+\.xml/ ) {
file.eachFile{
def oneFile = it
oneFile.eachLine{
if( it.contains("<error") || it.contains("<failure")){
oneFile.delete()
}
}
}
}
}
23.07.2012
tanzverfuehrung 147 8
Freut mich!
JEwen 23.07.2012

Stelle deine Groovy-Frage jetzt!