Porovnání obsahů dvou adresářů

Vytvořte program, který zjistí, zda jsou obsahy dvou adresářů včetně vnořených podadresářů identické. Pokud nejsou identické, vypíše přehledně všechny rozdíly.
Takovéto porovnávání je užitečné při vytváření záloh, kdy se zálohovaná data vytvářejí postupně a po zálohování chceme mít jistotu, že vše proběhlo v pořádku.

Vlastní porovnávání musí proběhnout ve třech krocích:

  1. Porovnání počtu vnořených podadresářů a souborů v nich obsažených, včetně souhrnné velikosti všech souborů. Všechna tři čísla se musejí rovnat.
  2. Porovnání úplných jmen (úplná cesta) podadresářů a souborů navzájem. Všechna jména se musí rovnat, žádný adresář nesmí mít nějaké jméno navíc nebo mu nesmí chybět.
  3. Stejně pojmenované soubory se nejprve porovnávají na shodnou velikost a v případě shody i na stejný obsah bajt po bajtu.

V případě, že se ve všech třech krocích nenalezne rozdíl, jsou adresáře stejné, v opačném případě jsou rozdílné.

V programu se důsledně snažte o oddělení aplikační a zobrazovací vrstvy -- program musí být funkční jak v konzolovém tak i v grafickém režimu.