Bu makale, Nodejs kullanarak zip dosyalarının nasıl oluşturulduğu konusunda bilgi sunar Archiver ve Adm-zip gibi popüler kütüphaneler, Nodejs'in zip dosyaları oluşturma işlevselliğini sağlar Archiver, açık kaynaklıdır ve bir örnek kodu da burada paylaşılmıştır Adm-zip ise, zip dosyası oluşturma ve açma işlevselliği sağlayan bir kütüphanedir ve örnek kodları da burada verilmiştir Bu makalede ayrıca zip dosyaları, ne olduğu ve neden kullanıldığı hakkında bilgi de verilmiştir Yazılımcılar, bu kütüphaneleri kullanarak, zip dosyalarını oluşturarak, birden fazla dosya ve klasörü tek bir dosyada saklayabilirler
Bu makale, Node.js kullanarak zip dosyalarını açma ve oluşturma işlemlerinin nasıl yapıldığını öğrenmek isteyenler için hazırlanmıştır. Zip dosyaları, birden fazla dosya ve klasörü tek bir dosya haline getiren bir arşivleme formatıdır ve Node.js ile bu işlem oldukça kolay hale gelir. Node.js, zip dosyası oluşturma işlevselliğini sağlayan birkaç kütüphaneye sahiptir ve bu kütüphaneler ile zip dosyalarını oluşturma işlemi oldukça basittir.
Zip dosyaları oluşturma işlemi için Node.js'in archiver ve adm-zip kütüphaneleri oldukça yaygın olarak kullanılır. Archiver, Node.js ile kullanılabilecek açık kaynaklı bir zip dosyası oluşturma kütüphanesidir ve basit bir örnek şu şekildedir:
Örnek Kod | Açıklama |
---|---|
| Bu örnekte, archiver kütüphanesi kullanılarak örnek_dir klasörü, example.zip dosyasına sıkıştırılır. |
Adm-zip kütüphanesi ise Node.js için açık kaynaklı bir zip dosyası işleme kütüphanesidir. Archiver'den farklı olarak, hem zip dosyası oluşturma hem de zip dosyası açma işlevselliği sağlar.
Zip dosyalarının açma işlemi de oldukça kolaydır ve Node.js'i kullanarak bu işlemi gerçekleştirmek için unzipper ve yauzl gibi kütüphaneler kullanılabilir. Unzipper, Node.js için açık kaynaklı bir zip dosyası açma kütüphanesidir ve archiver gibi, açık kaynaklı ve ücretsizdir. Yauzl ise Node.js için tam özellikli bir zip dosyası açma kütüphanesidir ve Unzipper'dan biraz daha yavaş olabilir ancak daha fazla işlevsellik sunar.
Bu makalede paylaşılan örnek kodlar ile Node.js kullanarak zip dosyalarının açma ve oluşturma işlemlerini kolayca gerçekleştirebilirsiniz.
Zip Dosyası Nedir?
Zip dosyaları, dosyaların sıkıştırılarak tek bir dosya haline getirilmesini sağlayan bir arşivleme formatıdır. Birden fazla dosya ve klasör, tek bir zip dosyasına yerleştirilerek, daha düzenli bir biçimde saklanabilir ve paylaşılabilir. Ayrıca, dosyaların boyutlarının küçültülmesiyle, depolama alanından önemli ölçüde tasarruf edilebilir.
Bu dosya formatının kullanımı oldukça yaygındır ve özellikle internet üzerinden dosya paylaşımı yaparken sıklıkla tercih edilir. Zip dosyaları, birçok farklı dosya türünü destekleme özelliği sayesinde, farklı kullanım alanlarına sahiptir. İster bir dizi resim dosyasını paylaşmak isteyin, ister birçok farklı belgeyi düzenli bir şekilde saklamak isteyin, zip dosyaları size uygun bir çözüm sunabilir.
Node.js İle Zip Dosyaları Oluşturma
Zip dosyaları, birçok dosya ve klasörü tek bir dosyada birleştiren bir arşivleme formatıdır. Node.js kullanarak, basit bir şekilde zip dosyaları oluşturabilirsiniz. Node.js'in birkaç zip dosyası oluşturma kütüphanesi vardır, bunların en popülerleri Archiver ve Adm-zip'dir.
Archiver, Node.js ile kullanılabilen açık kaynaklı bir zip dosyası oluşturma kütüphanesidir. Archiver'ın kullanımı oldukça kolaydır ve basit bir örnek şu şekildedir:
const archiver = require('archiver'); const output = fs.createWriteStream(__dirname + '/example.zip'); const archive = archiver('zip'); output.on('close', function () { console.log(archive.pointer() + ' total bytes'); console.log('Zip dosyası başarıyla oluşturuldu.'); }); archive.on('error', function(err){ throw err; }); archive.pipe(output); archive.append(fs.createReadStream(__dirname + '/file1.txt'), { name: 'file1.txt' }); archive.append(fs.createReadStream(__dirname + '/file2.txt'), { name: 'file2.txt' }); archive.finalize();
Adm-zip, Node.js için açık kaynaklı bir zip dosyası işleme kütüphanesidir. Archiver'dan farklı olarak, hem zip dosyası oluşturma hem de zip dosyası açma işlevselliği sağlar. Adm-zip kullanarak zip dosyası oluşturma örneği şu şekildedir:
const AdmZip = require('adm-zip'); const zip = new AdmZip(); zip.addLocalFile(__dirname + '/file1.txt'); zip.addLocalFile(__dirname + '/file2.txt'); zip.writeZip(__dirname + '/example.zip');
Node.js ile zip dosyaları oluşturmak oldukça kolaydır. Birkaç satır kod ile zip dosyalarını oluşturabilirsiniz. Archiver ve Adm-zip, en popüler zip dosyası oluşturma kütüphaneleridir ve her ikisi de Node.js ile uyumludur.
Zip Dosyası Oluşturma Kütüphaneleri
Node.js ile zip dosyaları oluşturmak oldukça kolaydır. Ancak bu işlemin gerçekleştirilmesi için Node.js'de bulunan kütüphanelerden yararlanmak gerekir. Zip dosyası oluşturma işlevselliği sağlayan birkaç popüler kütüphane vardır ve yazılımcılar tarafından yaygın olarak kullanılmaktadır.
Bunlardan bazıları şunlardır:
- archiver: Node.js ile kullanılabilecek açık kaynaklı bir zip dosyası oluşturma kütüphanesidir. Basit bir örnek kullanımı:
const archiver = require('archiver');const output = fs.createWriteStream(__dirname + '/example.zip');const archive = archiver('zip', { zlib: { level: 9 }});archive.pipe(output);archive .append('string of file data', {name: 'filename.txt'}) .append(fs.createReadStream('path/to/test2.jpg'), {name: 'second.jpg'}) .finalize();
- adm-zip: Node.js için açık kaynaklı bir zip dosyası kütüphanesidir ve zip dosyası oluşturma ve zip dosyası açma işlemleri için kullanılabilir. Kullanımı:
const AdmZip = require('adm-zip'); // reading archivesconst zip = new AdmZip("my_file.zip");const zipEntries = zip.getEntries(); // an array of ZipEntry records zipEntries.forEach(function(zipEntry) { console.log(zipEntry.toString()); // outputs zip entries information if (zipEntry.entryName == "my_file.txt") { console.log(zipEntry.getData().toString('utf8')); }});
Node.js ile zip dosyaları oluşturmak için daha fazla kütüphane bulunmaktadır, ancak örneklerde de gösterildiği gibi, çoğu basit, kullanımı kolay ve açık kaynaklıdır.
Archiver Kullanarak Zip Dosyası Oluşturma
Archiver, Node.js ile kullanılabilecek açık kaynaklı bir zip dosyası oluşturma kütüphanesidir. Bu kütüphane, zip dosyalarını oluşturmak için oldukça kolay bir API sunar. Archiver kütüphanesi, Node.js'in üstündeki yazılım paket yöneticisi NPM üzerinden yüklenir.
Adım | Kod | Açıklama |
---|---|---|
1 | npm install archiver | Archiver kütüphanesini yükleyin. |
2 | const archiver = require('archiver'); | Archiver kütüphanesini projenize dahil edin. |
3 | let output = fs.createWriteStream(__dirname + '/example.zip'); | Oluşturduğunuz zip dosyasının kaydedileceği dizin ve dosya adını belirleyin. |
4 | let archive = archiver('zip', { zlib: { level: 9 } }); | Zipleme işlemini başlatın ve sıkıştırma oranını belirleyin. |
5 | archive.pipe(output); | Zip dosyasını kaydedeceğiniz output stream'i belirleyin. |
6 | archive.append(fs.createReadStream(__dirname + '/file1.txt'), { name: 'file1.txt' }); | Zip dosyasına eklenecek dosyaları belirleyin. |
7 | archive.finalize(); | Zip dosyasını tamamlayın ve output stream'e kaydedin. |
Bu şekilde, Node.js kullanarak archiver kütüphanesiyle zip dosyası oluşturma işlemini kolayca gerçekleştirebilirsiniz.
Adm-zip Kullanarak Zip Dosyası Oluşturma
Adm-zip, Node.js için kullanılabilen açık kaynaklı bir zip dosyası işleme kütüphanesidir. Archiver'den farklı olarak, hem zip dosyası oluşturma hem de zip dosyası açma işlevselliği sağlar. Adm-zip, zip dosyası oluşturmak için kullanılabilecek birkaç yöntem sunar. Zip dosyasına yeni dosyalar veya klasörler ekleyebilir veya mevcut dosyaları güncelleyebilirsiniz.
Adm-zip kullanarak zip dosyası oluşturmak oldukça kolaydır. Aşağıdaki örneğe benzer bir kod parçası kullanarak, Node.js uygulamanızda zip dosyalarını oluşturabilirsiniz:
var AdmZip = require("adm-zip"); var zip = new AdmZip(); zip.addLocalFile("file1.txt"); zip.addLocalFile("file2.txt"); zip.writeZip("test.zip");
Bu örnekte, AdmZip kütüphanesi bir zip objesi oluşturur ve addLocalFile yöntemi ile zip dosyasına dosyalar ekler. Son olarak, writeZip yöntemiyle zip dosyası oluşturulur.
Bunun yanı sıra, Adm-zip kütüphanesi, zip dosyası açma işlevselliği de sağlar. Açmak istediğiniz zip dosyasını belirterek kolayca dosyalara erişebilirsiniz. Aşağıdaki örnek kod parçası, Node.js uygulamanızda zip dosyası açmak için kullanılabilir:
var AdmZip = require("adm-zip"); var zip = new AdmZip("test.zip"); zip.extractAllTo(/*target path*/, /*overwrite*/true);
Bu örnekte, yeni bir AdmZip objesi oluşturulur ve extractAllTo yöntemi ile zip dosyası açılır. Aynı zamanda, dosyaların hedef konumda saklanması için bir hedef yol belirtilir.
Zip Dosyası Oluşturma Örneği
Zip dosyası oluşturma işlemi, Node.js kullanarak oldukça kolaydır. Aşağıdaki örnekte, bir Node.js uygulaması ile nasıl zip dosyası oluşturulacağı basit bir şekilde gösterilmiştir:
Kod | Açıklama |
---|---|
const fs = require('fs'); | fs modülü, dosya okuma ve yazma işlemleri yapmak için kullanılır. |
const archiver = require('archiver'); | archiver kütüphanesi, zip dosyası oluşturma işlemi için kullanılır. |
let output = fs.createWriteStream(__dirname + '/example.zip'); | fs.createWriteStream() metodu, bir dosya yazmak için kullanılır. Bu örnekte, example.zip adlı bir zip dosyası oluşturuluyor. |
let archive = archiver('zip'); | archiver('zip') metodu, zip dosyası oluşturmak için kullanılır. |
archive.pipe(output); | archive.pipe() metodu, çıktı dosyasına veri yazmak için kullanılır. |
archive.directory('example_directory/', false); | archive.directory() metodu, bir dizindeki dosyaları zip dosyasına eklemek için kullanılır. false argümanı, dizin yapısını korumak için kullanılır. |
archive.finalize(); | archive.finalize() metodu, zip dosyasının oluşturulmasını tamamlar. |
Bu örnekte, fs modülü dosya işlemleri için kullanılmıştır. Archiver kütüphanesi ise zip dosyası oluşturma işlevselliği sağlar. Önce bir çıktı dosyası oluşturulur, sonra bir archiver nesnesi oluşturulur. Bu nesneye dizin ve dosyalar eklenir, son olarak ise zip dosyası oluşturulur. Bu örneği kullanarak, Node.js ile zip dosyası oluşturma işlemini kolayca gerçekleştirebilirsiniz.
Node.js İle Zip Dosyalarını Açma
Zip dosyalarını açmak için Node.js kullanmak çok kolaydır. İki farklı kütüphane kullanarak zip dosyalarını açabilirsiniz: unzipper ve yauzl.
İlk olarak, zip dosyalarını açmak için kullanabileceğiniz kütüphaneleri tanıyalım:
- unzipper: Açık kaynaklı ve ücretsiz bir zip dosyası açma kütüphanesidir.
- yauzl: Tam özellikli bir zip dosyası açma kütüphanesidir. Unzipper'dan biraz daha yavaş olabilir ancak daha fazla işlevsellik sunar.
Unzipper kütüphanesi kullanarak zip dosyalarını açmak için öncelikle zip dosyasının yolu ve adı belirtilerek unzipper modülü yüklenmelidir. Ardından bir 'stream' objesi olarak dosya açılır ve dosyadan okuma işlemi başlatılır. Şu şekilde örneklenir:
const unzipper = require('unzipper');const fs = require('fs');const zipFile = fs.createReadStream('path/to/zipfile.zip');zipFile.pipe(unzipper.Extract({path: 'output/directory'}));
Yauzl kütüphanesi ile zip dosyalarını açmak için aşağıdaki gibi bir örnek kullanabilirsiniz. Bu örnek, zip dosyasının yolu ve adı belirtilerek yauzl modülü yüklenir, ve zip dosyasının içeriğini almak için bir 'stream' objesi olarak dosya açılır:
const yauzl = require('yauzl');const fs = require('fs');yauzl.open('path/to/zipfile.zip', {lazyEntries: true}, (err, zipfile) => { if (err) throw err; zipfile.readEntry(); zipfile.on('entry', (entry) => { if (/\/$/.test(entry.fileName)) { // create directory fs.mkdir(entry.fileName, { recursive: true }, () => { zipfile.readEntry(); }); } else { // create file fs.mkdir(path.dirname(entry.fileName), { recursive: true }, () => { zipfile.openReadStream(entry, (err, readStream) => { if (err) throw err; const writeStream = fs.createWriteStream(entry.fileName); readStream.pipe(writeStream); }); }); } });});
Bu kod, zip dosyasındaki her dosya veya klasör için bir işlem yaparak dosyaları açar.
Zip Dosyası Açma Kütüphaneleri
Zip dosyalarını başarıyla açabilmek için, Node.js'de kullanabileceğiniz birkaç açık kaynaklı kütüphane bulunmaktadır. Bu kütüphaneler, yazılımcılar tarafından yaygın olarak kullanılmaktadır ve zip dosyasını açmak için gereken işlevsellikleri sağlar.
İlk olarak, Unzipper, Node.js için açık kaynaklı bir zip dosyası açma kütüphanesidir. Archiver gibi, açık kaynaklı ve ücretsizdir. Basit bir örnek kullanarak zip dosyası açabilirsiniz:
const unzipper = require('unzipper');fs.createReadStream('archive.zip') .pipe(unzipper.Parse()) .on('entry', function (entry) { const fileName = entry.path; const type = entry.type; // 'Directory' veya 'File' const size = entry.vars.uncompressedSize; // unzip edilmiş boyut entry.pipe(fs.createWriteStream('output/path/' + fileName)); });
Bir diğer açık kaynaklı zip dosyası açma kütüphanesi ise Yauzl olarak adlandırılır. Bu kütüphane, Node.js için tam özellikli bir zip dosyası açma kütüphanesidir. Unzipper'dan biraz daha yavaş olabilir ancak daha fazla işlevsellik sunar. Yauzl'yi kullanarak da zip dosyalarını açabilirsiniz:
const yauzl = require('yauzl');yauzl.open('archive.zip', {lazyEntries: true}, function(err, zipfile) { if (err) throw err; zipfile.readEntry(); zipfile.on('entry', function(entry) { if (/\/$/.test(entry.fileName)) { // Klasöre geçiş işlemleri } else { zipfile.openReadStream(entry, function(err, readStream) { if (err) throw err; readStream.on('end', function() { zipfile.readEntry(); }); // Dosyayı yazdırma }); } });});
Her iki kütüphane de zip dosyası açma işlemini yerine getirebilir. Kullanmanız gereken seçim, uygulamanızın ihtiyaçlarına, işlem hızına ve kullanım kolaylığına bağlıdır. Bu kütüphanelerden hangisini kullanırsanız kullanın, Node.js ile zip dosyalarını başarıyla açabilirsiniz.
Unzipper Kullanarak Zip Dosyası Açma
Node.js ile zip dosyalarını açmak için kullanabileceğiniz bir başka açık kaynaklı kütüphane de Unzipper'dır. Unzipper, Node.js için tamamen ücretsiz ve açık kaynaklı, Archiver gibi ilgili işlevselliği sağlar. Bu kütüphane, hem dosya adlarını hem de dosya boyutlarını destekler, bu nedenle herhangi bir zip dosyasını açarken dosya adlarını ve boyutlarını kontrol edebilirsiniz.
Unzipper kullanarak zip dosyasını açmak için, aşağıdaki kod satırlarını Node.js uygulamanıza ekleyebilirsiniz:
const unzipper = require('unzipper');
fs.createReadStream('test.zip')
.pipe(unzipper.Parse())
.on('entry', function (entry) {
const fileName = entry.path;
const type = entry.type; // 'Directory' or 'File'
const size = entry.vars.uncompressedSize; //There is also compressedSize variant.
entry.pipe(fs.createWriteStream(fileName));
})
Bu kod, test.zip adlı zip dosyasını okur ve içerisindeki dosyaları tek tek dışa aktarır. Ayrıca, her dosya için dosya adı, dosya tipi ve dosya boyutu gibi bilgileri de yakalar. Unzipper, diğer kütüphanelere göre biraz daha yavaş çalışabilir, ancak tam özellikli bir çözümdür.
Yauzl Kullanarak Zip Dosyası Açma
Yauzl Kullanarak Zip Dosyası Açma işlemi için öncelikle, Node.js üzerinde yükleme işlemi yapmanız gerekmektedir. Kurulum işlemi tamamlandıktan sonra, yauzl kütüphanesini kullanarak zip dosyasını açabilirsiniz. Yauzl, unzipper'a benzer şekilde açık kaynaklı ve ücretsiz bir zip dosyası açma kütüphanesidir. Ancak daha fazla işlevsellik sunar ve Node.js için tam özellikli bir seçenektir.
Yauzl, zip dosyasını açmak için yüksek düzeyde özelleştirilebilir seçeneklere sahiptir. Bu, zip dosyasını açarken belirli dosyaları veya klasörleri atlayabilir veya sadece belirli dosyaları alabilirsiniz.
Aşağıdaki örnek, yauzl kütüphanesi kullanılarak zip dosyasının açılmasını göstermektedir:
const { open } = require('yauzl');const openZip = (zipFilePath) => { return new Promise((resolve, reject) => { open(zipFilePath, { lazyEntries: true }, (err, zipfile) => { if (err) reject(err); const files = []; zipfile.readEntry(); zipfile.on('entry', (entry) => { if (/\/$/.test(entry.fileName)) { zipfile.readEntry(); } else { files.push(entry.fileName); zipfile.readEntry(); } }); zipfile.on('error', (err) => { reject(err); }); zipfile.on('end', () => { resolve(files); }); }); });};// kullanımıopenZip('example.zip') .then((files) => { console.log('Zip dosyasındaki dosyalar:', files); }) .catch((err) => { console.error('Hata:', err); });
Bu örnek, yauzl kütüphanesinin basit bir kullanımını göstermektedir. Kütüphane ile bir zip dosyasını açmak, dosyaları okumak ve hatta sıkıştırılmış dosyaları ayrıştırmak için birçok seçenek mevcuttur.
Zip Dosyasını Açma Örneği
Zip dosyalarını açmak, Node.js kullanarak oldukça kolaydır. Aşağıdaki örnekte, basit bir Node.js uygulamasıyla zip dosyasını nasıl açabileceğinizi öğrenebilirsiniz.
Kod | Açıklama |
---|---|
| Bu kod, Node.js'de unzipper kütüphanesini kullanarak bir zip dosyasını açar ve içeriğini belirtilen dizine çıkarır. |
Bu örnekte, fs.createReadStream() yöntemi, zip dosyasını okumak ve unzipper.Extract() yöntemi, dosya içeriğini belirtilen dizine çıkarmak için kullanılır.
Zip dosyalarını açmak, dosyanın içeriğine ve boyutuna bağlı olarak biraz zaman alabilir. Bu nedenle, büyük zip dosyalarını açarken sabırlı olmak gerekir.