docs: public static long size(String filePath) throws IOException {
          CheckArg.isNotEmpty(filePath, "filePath");
          File file = new File(filePath);
          if (!file.exists()) {
              return 0;
          }
          if (file.isFile()) {
              return file.length();
          }
          final AtomicLong size = new AtomicLong();
          Files.walkFileTree(Paths.get(filePath), new SimpleFileVisitor<Path>() {
              @Override
              public FileVisitResult visitFile( Path file, BasicFileAttributes attrs ) {
                  size.addAndGet(attrs.size());
                  return FileVisitResult.CONTINUE;
              }
  
              @Override
              public FileVisitResult visitFileFailed( Path file, IOException exc ) {
                  return FileVisitResult.CONTINUE;
              }
          });
          return size.get();
      }