code: public int getNumberOfBlocks(final FileStatus file) throws IOException {
  
  		int numberOfBlocks = 0;
  
  		if (file == null) {
  			return 0;
  		}
  
  		// For a file, this is easy
  		if (!file.isDir()) {
  			return getNumberOfBlocks(file.getLen(), file.getBlockSize());
  		}
  
  		// file is a directory
  		final FileStatus[] files = this.listStatus(file.getPath());
  		for (int i = 0; i < files.length; i++) {
  
  			if (!files[i].isDir()) {
  				numberOfBlocks += getNumberOfBlocks(files[i].getLen(), files[i].getBlockSize());
  			}
  		}
  
  		return numberOfBlocks;
  	}
docs: Returns the number of blocks this file/directory consists of
  assuming the file system's standard block size.
  
  @param file
  the file
  @return the number of block's the file/directory consists of
  @throws IOException