У меня есть эта задача, чтобы получить zip-контент и поместить его в другой zip-архив.
Из src zip я хочу взять все в каталоге 'r' и скопировать его в целевой zip-каталог 'x / y / z'.
Код работает, но мне интересно, может ли он быть более элегантным.
from( zipTree("a.zip") ) {
include "r/**"
includeEmptyDirs = false
into "x/y/z"
eachFile { fcd ->
def segs1 = [fcd.relativePath.segments].flatten().findAll { it2 -> it2 != null };
segs1.removeAt(3)
fcd.relativePath = new RelativePath(true, segs1.toArray(new String[0]))
}
}
Проблема, с которой я столкнулся, заключается в том, что fcd.relativePath.segments - это String [], где я хочу удалить элемент с индексом 3.
Здесь я конвертирую в список и обратно в массив, бррр.
Идеи
Frank