> + checkArgument(baseDir.isDirectory(), "%s is not a directory", baseDir);
> + File[] files = baseDir.listFiles();
> + File tarFile = new File(archivePath);
> +
> + String token = getLast(Splitter.on("/").split(archivePath.substring(0,
> archivePath.lastIndexOf("/"))));
> +
> + byte[] buf = new byte[1024];
> + int len;
> + TarArchiveOutputStream tos = new TarArchiveOutputStream(new
> FileOutputStream(tarFile));
> + tos.setLongFileMode(TarArchiveOutputStream.LONGFILE_GNU);
> + for (File file : files) {
> + TarArchiveEntry tarEntry = new TarArchiveEntry(file);
> + tarEntry.setName("/" +
> getLast(Splitter.on(token).split(file.toString())));
> + tos.putArchiveEntry(tarEntry);
> + if (!file.isDirectory()) {
> + FileInputStream fin = new FileInputStream(file);
thank @andrewgaul, something like the following, makes sense?
```
for (File file : files) {
TarArchiveEntry tarEntry = new TarArchiveEntry(file);
tarEntry.setName("/" +
getLast(Splitter.on(token).split(file.toString())));
tos.putArchiveEntry(tarEntry);
if (!file.isDirectory()) {
Files.asByteSource(file).copyTo(tos);
tos.closeArchiveEntry();
}
tos.close();
}
```
---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-labs/pull/57/files#r12953161