zip o rar per spiffs

salve a tutti
dentro la spiffs di un esp32 ho una 15na di files testo e vorrei sapere se esiste una qualche libreria che gestisce la loro compressione in una sorta di zip-rar.
Questo perchè si possa creare un unico file, da prelevare mediante apposita routine (che già ho provato e funziona con i files singoli).
Ho trovato qualcosa ma in effetti decomprime solamente.
A me serve il contrario : comprimi dentro la spiffs e poi vengo io a prendermi il file che hai creato.
Grazie a chi mi darà qualche input a riguardo !

Dai un’occhiata a questa libreria GitHub - lbernstone/miniz-esp32: This is a full copy of miniz, modified to use psram if available on an esp32

E’ una versione semplificata della libreria open source ZLib (di cui trovi moltissima documentazione online).

Grazie per le info
Ho comunque visto che non è alla mia portata in quanto non ha dei comandi "semplici" per poterla utilizzare.
Probabilmente sono abituato troppo bene altrove ed infatti mi aspettavo un comando tipo INFLATE(pippo) e DEFLATE(pippo) ma così non è :frowning:
A questo punto chiedo infantilmente se esiste qualcosa che possa accodare i suddetti files anche senza comprimerli.
In parole povere : un solo file txt creato in append con tutti quelli presenti in spiff, in modo che una volta presente sul pc possa io "decomprimerlo", utilizzando una qualche routine creata ad-hoc (anche in visual studio, che conosco abbastanza bene).
header - footer per capire dove iniziano e dove finiscono - taglio - salvo ...
E' possibile ?

Certo che è possibile.
Apri il nuovo file in scrittura, e poi fai un listdir aggiungendo il contenuto di ciascun file presente nella cartella di interesse nel nuovo file appena creato..

Nell'esempio SPIFFS_Test ci sono tutte le "primitive" necessarie.

Qualcosa del genere (ovviamente cosi com'è non compila :wink: )

  .....  
  // Nuovo file su cui scrivere
  File writeFile = fs.open("/tutto_insieme.txt", FILE_WRITE);

  File root = fs.open(dir_name);
  if(!root.isDirectory()){
      Serial.println("NON è una directory");
      return;
  }

  File readFile = root.openNextFile();
  while(readFile ){
     // Il file aperto non è una directory, possiamo leggerne il contenuto
     if(!readFile.isDirectory()){
        writeFile.print("----HEAER-----\n"); 
        while(readFile.available()){
          writeFile.write(readFile.read());
        }
        writeFile.print("----FOOTER-----\n"); 
     }
     readFile = root.openNextFile();
  }
  writeFile.close();
  ......

eccomi di nuovo
si. la cosa funziona egregiamente ed il mio prossimo passo è costruire il decompiler
non appena è tutto pronto lo posto qui ad uso di eventuali fruitori.
caro cotestatnt, per ora grazie

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.