Anche se fate fatica a trovare qualcosa per manipolare i files zip con il Compact Framework, sappiate che qualcosa c'è.
Innanzitutto trovate le Xceed Zip for .NET CF, ma sono a pagamento, e costano la bellezza di 499,95 dollari. L'elenco delle caratteristiche è certamente interessante, ma se avete bisogno di qualcosa di più semplice (e gratuito) potete ricorrere alla libreria SharpZipLib. Essa è disponibile sotto la licenza GPL.
L'ho provata in questi giorni per applicarla al progetto su cui sto lavorando. Siccome ho avuto qualche problemino, voglio segnalarlo anche a voi per evitare di perdere troppo tempo come è capitato a me. Innanzitutto, mentre sul PC Desktop l'assembly SharpZipLib deve essere installato nella GAC, questo ovviamente non vale per i Pocket PC: è sufficiente che la dll sia nella stessa directory dell'applicazione per poterla utilizzare.
L'altra questione è un po' più pesante, e solo grazie all'aiuto del buon Marco Minerva sono arrivato alla soluzione in tempi rapidi, dato che lui ha incontrato il mio stesso problema più o meno un mesetto fa. Se utilizzate esattamente lo stesso assembly che scaricate dal sito, al momento di comprimere/decomprimere utilizzando la classe FastZip il codice solleverà un'eccezione, che adesso purtroppo non riesco ad indicarvi in modo preciso: dovrebbe essere qualcosa del tipo MethodNotFoundException. Questo è dovuto al fatto che l'assembly di SharpZipLib tenta di accedere alla proprietà CurrentCulture esposta da System.Threading.Thread.CurrentThread. La proprietà CurrentCulture esiste nel .NET Framework, ma non nella sua versione per palmari. SharpZipLib ha bisogno di accedere a questa proprietà per poter formattare a video le date in modo opportuno in base alla vostra Culture. Se non avete bisogno di queste informazioni, ad esempio se volete semplicemente prendere uno zip e decomprimerlo da qualche parte, potete fare quello che ha fatto il buon Marco, che ha esaminato il codice, lo ha ripulito e reso "funzionante" davvero su CF.