Código:
<num_archivos:4 bytes><archivo1_tamaño:4 bytes><archivo1:X bytes><...>
Yo no usaría XML, ya que XML de momento es texto plano, y si se hace en binario, pues todo en binario no? xD
Luego para el tema del árbol, pues hasta puedes plantearte crear una clase 'árbol', cargarla a partir de un directorio, y luego serializarla y pasarla al archivo. Mil formas.