> +      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

Reply via email to