Καλημέρα στην παρέα! Θα ήθελα τη γνώμη σας για τη βιβλιοθήκη SharpZipib. Έχει αναφερθεί η βιβλιοθήκη σε άλλες ερωτήσεις οπότε είπα να ρωτήσω.
Χρησιμοποιώ τη βιβλιοθήκη για να φτιάξω ένα εργαλείο backup για μία ιστοσελίδα. Το backup το πέρνει ο πελάτης μέσα από ένα web interface και το .zip αρχείο κατεβαίνει αμέσως μόλις φτιαχτεί. Ο κώδικας που έφτιαξα, με βοήθεια από το forum είναι ο ακόλουθος:
myZip = ZipFile.Create(curZipFile.FullName)
For Each _File As String In myFiles
myZip.BeginUpdate()
myZip.NameTransform = New ZipNameTransform(_RootPath)
myZip.Add(FileName)
myZip.CommitUpdate()
Next
myZip.Close()
Το πρόβλημα μου είναι ότι όταν ο συνολικός αριθμός των αρχείων είναι πάνω από 500-600 αρχίζει η διαδικασία να γίνεται πολύ αργά. Αν δεν χρησιμοποιήσω την .CommitUpdate() μετά από κάθε .Add(FileName) έχω αποτελέσματα πολύ πιο γρήγορα αλλά το .zip αρχείο είναι κατεστραμμένο. Από όσο διάβασα στο forum, δεν χρειάζεται η .CommitUpdate() μετά από κάθε .Add() αλλά μία φορά στο τέλος. Άρα μάλλον είναι κάποιο bug το οποίο δεν έχουν λύσει ακόμα.
Οι ερωτήσεις μου:
Ποιος είναι ο σωστός τρόπος χρήσης των BeginUpdate(), CommitUpdate() συναρτήσεων;
Αν τελικά αυτή η λύση δεν αποδώσει, υπάρχει κάποια άλλη λύση για να κάνω backup;
Τάσος Καραγιάννης
Baby debugging steps...