code: public static File createFileBalancingDirectoryDescriptor(File workingDirectory, String fileName, int depth, int cellWidth)
  	{
  		if (depth < 0)
  		{
  			throw new IllegalArgumentException("depth must be greater or equal to 0");
  		}
  		if (cellWidth < 1)
  		{
  			throw new IllegalArgumentException("cellWidth must be greater or equal to 1");
  		}
  		if (fileName.length() < (depth * cellWidth))
  		{
  			throw new IllegalArgumentException("fileName must be at least " + (depth * cellWidth) + " chars, has only "
  					+ fileName.length() + " [" + fileName + "].");
  		}
  		int _subNameLength = cellWidth;
  		File _targetFile = workingDirectory;
  		for (int _level = 0; _level < depth; _level++)
  		{
  			_targetFile = new File(_targetFile, fileName.substring(0, _subNameLength));
  			_subNameLength += cellWidth;
  		}
  		return _targetFile;
  	}
docs: TODO tests