Windows 11 24H2 crea archivi zip credendo di essere Linux.

Mettetevi comodi che questo è un thread lungo.

Qui (su Threads, n.d.M.) non lo pubblicizzo molto ma io sono il creatore di ZipGenius, un’applicazione per la creazione e gestione di archivi compressi – prevalentemente file .ZIP. Finalmente ho trovato il tempo per portare a termine la totale riscrittura della mia applicazione e questo mi ha portato a fare delle considerazioni su Windows e la Microsoft tutta.

Metto le mani avanti: io adoro Microsoft e adoro Windows però in certe circostanze mi vien voglia di prendere un aereo e andare fino a Redmond per guardare qualche dirigente negli occhi e chiedere il perché di certe scelte. Ecco, mi sono imbattuto da poco in una di quelle incongruenze di Windows che urlano vendetta.

Antefatto.

Come ogni gestore di archivi zip che si rispetti, la mia app apre un archivio zip, ne legge l’elenco dei file e lo mostrta all’utente, indicando varie informazioni su ciascun file; fra queste informazioni, vi sono gli “attributi” del file, cioé quelle informazioni che dicono al sistema operativo come deve trattare quel file: se si tratti di un file pronto per l’archiviazione (“A“), se sia una cartella (“D“), un file a sola lettura (“R“), un file nascosto (“H“) o di sistema (“S“). Oltre agli “attributi”, il formato zip archivia anche il tipo di filesystem dal quale il file proviene (“FAT” per Windows, “UNIX” per Linux/Unix, ecc.) ma questa, solitamente è un’informazione prevalentemente a uso e consumo delle applicazioni per la compressione (per stabilire come gestire il dato sugli attributi.

Fatto.

L’aggiornamento 24H2 di Windows 11 ha introdotto la possibilità di creare archivi ZIP, 7Z e TAR direttamente e senza l’uso di app di terze parti: basta selezionare uno o più file sul desktop con il tasto destro e scegliere nel menù contestuale quale tipo di archivio Windows creerà con quei files. Volendo creare un archivio zip per il debug della mia app, quella è una soluzione rapida e comoda…

Non avevo considerato l’inaffidabilità di tutto ciò che viene proprinato “di serie” da MS.

Creo un archivio zip e lo apro con la mia app durante il debug. Noto che l’elenco dei file non mostra alcu a informazione nella colonna “Attributi”. Il minimo sindacale sarebbe dovuto essere una “A” (l’attributo di default per il 95% dei file in Windows) e invece niente. Ho buttato un paio di giorni pensando a errori nel mio codice. Nulla da fare.

Le mie buone prassi mi spingono a togliere le mani dalla tastiera e ragionare su quel che vedevo. Lì si accende una lampadina e decido di aprire lo stesso archivio con WinRAR e 7-zip. Scopro così che il file dentro l’archivio è stato compresso (da Windows 11) come se fosse destinato a sistemi Unix-like (come Linux), dunque gli attributi erano i permessi “alla Linux” (es.: -rw-rw-r–). Ecco perché il mio codice non riusciva a elaborare quel dato “strano” restituito dallo zip.

Considerazioni.

Dunque Windows 11 crea archivi zip come se – al contrario – fosse una distribuzione Linux a farlo… La colpa è dell’uso sbagliato della libreria open source “libarchive” fatto da chi ha sviluppato la nuova funzione di Esplora File. Sembra una cosa da nulla ma questo può avere conseguenze devastanti in diversi ambienti di lavoro, laddove vi è la necessità di fare frequenti backup incrementali o differenziali di molti file.

La conservazione degli attributi corretti dei file è importante perché questi vanno riassegnati al file una volta che questo viene decompresso; per esempio, se un file non fosse decompresso con il suo attributo “A” originario (che lo indica come pronto per l’archiviazione), potrebbe essere estromesso dai backup fatti con utility di terze parti oppure, nella peggiore delle ipotesi, potrebbe essere cancellato prima del suo reale riutilizzo.
Non va bene.

Conclusioni.

Anche se non avete esigenze particolari di archiviazione, affidate i vostri file a strumenti progettati con cura e con passione. ZipGenius è e sarà gratuito (come dal 1997 a oggi) però avete l’alternativa di 7-zip oppure potreste finanziare WinRAR con l’acquisto di una licenza.
Non fermatevi all’opzione più semplice e rapida perché potrebbe non essere la migliore.
Come in questo caso.

Postilla.

Questo accade solo se Esplora File si è aggiornato permettendo la creazione di archivi TAR e 7Z ma non il vecchio “Invia a cartella compressa” o il più recente “Comprimi come ZIP” con questa sola voce del menù. Quelle funzioni prima venivano gestite da una DLL creata da WinZip per MS.

Dimostrazione.

Ho creato il primo archivio, Desktop_1.zip, usando 7-zip mentre il secondo, Desktop-2.zip, è stato creato usando le funzioni di compressione integrate in Windows 11 24H2. Come si vede, gli attributi dei files sono salvati in modo diverso.