code: public static StringBuffer parseFileName(byte[] header) {
          StringBuffer result = new StringBuffer(256);
  
          // If header[345] is not equal to zero, then it is the "prefix"
          // that 'ustar' defines. It must be prepended to the "normal"
          // name field. We are responsible for the separating '/'.
          //
          if (header[345] != 0) {
              for (int i = 345; i < 500 && header[i] != 0; ++i) {
                  result.append((char) header[i]);
              }
  
              result.append("/");
          }
  
          for (int i = 0; i < 100 && header[i] != 0; ++i) {
              result.append((char) header[i]);
          }
  
          return result;
      }
docs: Parse a file name from a header buffer. This is different from parseName() in that is recognizes 'ustar' names
  and will handle adding on the "prefix" field to the name.
  
  Contributed by Dmitri Tikhonov <dxt2431@yahoo.com>
  
  @param header
  The header buffer from which to parse.
  @param offset
  The offset into the buffer from which to parse.
  @param length
  The number of header bytes to parse.
  @return The header's entry name.