Nodejs ile dosya filtreleme işlemleri, dosyaların içeriğinde belirli bir kelime veya ifade aramak için kullanılır Dosyaların okunmasını ve filtrelenmesini sağlayan 'fs' modülü, bu işlemlerin gerçekleştirilmesinde önemli bir rol oynar Filtreleme işleminin sonucunda, belirtilen kelime veya ifade içeren tüm satırlar yeni bir dosyaya yazdırılır Bu işlemin gerçekleştirilmesinde farklı filtreleme paketleri de kullanılabilir Nodejs, dosya işlemlerini yönetmek için kullanılan bir platformdur ve dosya okuma, dosya yazma, dosya oluşturma, dosya silme ve dosya yeniden adlandırma işlemlerini kolay bir şekilde gerçekleştirebilir

Node.js, dosya filtreleme işlemleri için oldukça kullanışlı bir platformdur. Dosyaların okunması, yazılması veya belirli içeriklerine göre filtreleme işlemleri, Node.js ile oldukça kolay bir şekilde gerçekleştirilebilir. Bu rehberde, Node.js ile dosya içeriğine göre filtreleme işlemleri hakkında detaylı bilgi edineceksiniz.
Dosya filtreleme işlemleri genellikle büyük dosya setlerinde veya içeriği değişen dosyalarda kullanılır. Hangi dosyaların belirli bir kelime veya ifade içerdiğini bulmak veya belirli türde dosyaları filtrelemek oldukça önemlidir. Node.js ile bu işlemler oldukça kolay bir şekilde gerçekleştirilebilir.
Dosyalara filtreleme işlemi yapmak için, öncelikle dosyaların okunması gerekir. Dosyalar okunduktan sonra, içeriklerinde belirli bir kelime veya ifade aranarak filtreleme işlemi gerçekleştirilir. Bu sayede dosyaların içerikleri hızlı bir şekilde filtrelenir ve sonuçlar elde edilir. Node.js'in bu işlemler için kullandığı paketler de oldukça kullanışlıdır.
Bir örnek vermek gerekirse, belirli bir klasördeki tüm dosyaların içinde belirli bir kelime aranabilir veya dosyalar boyutlarına göre filtrelenerek sadece belirli boyutta olan dosyalar elde edilebilir. Bu işlemler Node.js kod parçaları ile oldukça kolay bir şekilde gerçekleştirilebilir. Bu rehberde, dosya filtreleme işlemleri hakkında detaylı bilgi edindikten sonra bu işlemleri gerçekleştirmek için örnek uygulamaların kodları ve açıklamaları da yer alacak.
Node.js Nedir?
Node.js, açık kaynak kodlu bir JavaScript çalışma ortamıdır. İlk olarak 2009'da Ryan Dahl tarafından geliştirilmiştir ve bugün popüler bir şekilde kullanılmaktadır. Node.js, sunucu tarafı uygulamaları yazmak için kullanılır ve modern web uygulamalarının vazgeçilmez bir parçasıdır. Node.js, özellikle yüksek trafikli uygulamalarda sürekli veri alışverişi gerektiren uygulamalarda kullanıldığında büyük oranda performans artışı sağlar.
Node.js'in kullanım alanları oldukça çeşitlidir. Örneğin, web geliştirme, sunucu tarafı uygulama geliştirme, veri işleme, yapay zeka ve hatta robotik gibi alanlarda da kullanılmaktadır. Node.js, kolay ölçeklenebilir olması, hızlı olması ve modüler yapısı sayesinde web uygulama geliştiricileri tarafından sıklıkla tercih edilmektedir.
Node.js ile JavaScript'in sunucu tarafında kullanılabilmesi de büyük bir avantajdır. Böylece, web uygulamalarının Front-end ve Back-end kısımları aynı dilde yazılabilmekte ve veri alışverişi daha hızlı ve rahat bir şekilde gerçekleştirilmektedir. Bunun yanında, Node.js ile sunucu tarafında daha az bellek kullanılarak daha çok işlem yapılabilir ve bu nedenle yüksek trafikli uygulamaların performansı artırılabilir.
Dosya İşlemleri
Node.js, dosya işlemlerini yönetmek için kullanılan bir platformdur. Dosya işlemleri; dosya okuma, dosya yazma, dosya oluşturma, dosya silme ve dosya yeniden adlandırma işlemlerini içerir.
Dosya okuma işlemi, dosyadaki verilerin program tarafından okunması işlemidir. Node.js, bu işlemi yürütmek için fs.readFile() ve fs.readFileSync() metotlarını kullanır. readFile() asenkron bir şekilde çalışırken readFileSync() senkron bir şekilde çalışır.
Dosya yazma işlemi, program tarafından belirli bir dosyada verilerin yazılması işlemidir. Node.js, bu işlemi yürütmek için fs.writeFile() ve fs.appendFile() metodlarını kullanır. writeFile() verilen dosyaya yeni veriler yazar ve dosyadaki tüm verileri silerken appendFile() dosyada var olan verilerin sonuna yeni veriler ekler.
Dosya oluşturma işlemi, belirli bir dosyanın program tarafından oluşturulmasıdır. Node.js, bu işlemi yürütmek için fs.createFile() metotunu kullanır.
Dosya silme işlemi, belirli bir dosyanın program tarafından silinmesidir. Node.js, bu işlemi yürütmek için fs.unlink() metotunu kullanır.
Dosya yeniden adlandırma işlemi, belirli bir dosyanın program tarafından yeniden adlandırılmasıdır. Node.js, bu işlemi yürütmek için fs.rename() metotunu kullanır.
Filtreleme İşlemleri
Filtreleme işlemleri, dosya içeriğinde belirli bir kelime veya ifade aramak için kullanılır. Bu işlemin gerçekleştirilmesi için 'fs' adlı modül kullanılır. Bu modül dosya işlemleri için gerekli araçları sağlar. Arama işlemi gerçekleştirilirken 'readFile()' metodu ile dosya içeriği okunur. Daha sonra dosya içeriği, belirtilen kelime veya ifadeye göre filtrelenir. Filtreleme sonucunda, belirtilen kelime veya ifade içeren tüm satırlar yeni bir dosyaya yazdırılır.
Ayrıca, dosya işlemleri sırasında 'readFileSync()' ve 'writeFileSync()' fonksiyonları da kullanılabilir. 'readFileSync()' fonksiyonu ile dosya okunurken, 'writeFileSync()' fonksiyonu ile yeni bir dosya oluşturulur ve filtreleme sonucu buraya yazdırılır.
Bu işlemin gerçekleştirilmesi için birçok farklı filtreleme paketi de mevcuttur. Bu paketler, filtreleme işlemini daha hızlı ve etkili bir şekilde gerçekleştirebilmek için kullanılır. Bazı örnek filtreleme paketleri şunlardır:
- grep: Unix tabanlı sistemlerde kullanılan popüler bir filtreleme aracıdır.
- angular-grep: AngularJS framework'ü kullanıcıları için geliştirilmiştir.
- string-match: Dosya içeriğinde belirli bir dizeyi arayan basit bir filtreleme paketidir.
Bu filtreleme paketleri, Node.js ile filtreme işlemlerinde kullanılan 'fs' modülüne ek olarak kullanılabilir. Filreleme işlemlerinin nasıl yapıldığı hakkında daha fazla bilgi edinmek için örnek uygulamalara ve belgeleri inceleyebilirsiniz.
Filtreleme Paketleri
Filtreleme işlemi, Node.js ile yapılan birçok dosya işleme işlemi arasında en sık kullanılan işlemlerden biridir. Node.js, farklı filtreleme paketleri aracılığıyla bu işlemin yapılmasını sağlayan birçok seçenek sunar. Bu paketler arasında en sık kullanılanları şunlardır:
- fs-exclude: Bu paket, belirli klasörler ve dosyalar hariç, belirli dosya türlerini filtrelemek için kullanılır. Dosya ve klasör adları için regex (düzenli ifadeler) kullanılabilir.
- node-dir: Bu paket, belirli bir klasördeki tüm dosyaları ve alt klasörleri arayabilir ve belirli bir regex ifadesine göre filtreleyebilir. Bu paketi kullanarak, dosya içeriğinde arama yapma veya dosya adı filtrelemesi yapma seçenekleri de mevcuttur.
- path-filter: Bu paket, dosya ve klasörleri belirli bir uzantıya sahip olan veya belirli bir regex ifadesine uyan dosyalarla filtrelemek için kullanılır.
Bu filtreleme paketleri, Node.js ile dosya işleme işlemlerinde büyük kolaylık sağlar ve dosya filtreleme işlemini oldukça basit hale getirir. Bunların yanı sıra, Node.js kullanarak birden fazla paketi bir arada kullanarak filtreleme işlemlerini daha da ince ayarlayabilirsiniz.
Örnekler
Filtreleme işlemleri, dosya içerisinde belirli bir kelime veya ifade arama işlemidir ve Node.js ile oldukça basit bir şekilde gerçekleştirilebilir. İşlemi daha iyi anlamak için bazı örnek uygulamalar yapılmıştır:
Bu örnek uygulama, belirli bir dizindeki tüm dosyaları belirtilen türdeki dosyalarla sınırlandırır. Örneğin, bir dizindeki tüm mp3 dosyalarını bulmak için aşağıdaki kodu kullanabilirsiniz:
const fs = require('fs'); const path = require('path'); const directoryPath = path.join(__dirname, 'myFolder'); fs.readdir(directoryPath, function(err, files) { if (err) { return console.log('Unable to scan directory: ' + err); } const filteredFiles = files.filter(function(file) { return path.extname(file).toLowerCase() === '.mp3'; }); console.log(filteredFiles); });
Bu kod dizindeki her dosyanın uzantısına baktığından, sadece mp3 dosyalarını döndürecektir.
Bu örnek uygulama, belirli bir dizindeki tüm dosyaların içeriğinde belirli bir kelime veya ifadeyi arar. Örneğin, bir dizindeki tüm txt dosyalarını gezerek 'Node.js' kelimesini içeren dosyaları bulmak için aşağıdaki kodu kullanabilirsiniz:
const fs = require('fs'); const path = require('path'); const directoryPath = path.join(__dirname, 'myFolder'); fs.readdir(directoryPath, function(err, files) { if (err) { return console.log('Unable to scan directory: ' + err); } const filteredFiles = []; files.forEach(function(file) { const filePath = path.join(directoryPath, file); const fileContent = fs.readFileSync(filePath, 'utf8'); if (fileContent.indexOf('Node.js') >= 0) { filteredFiles.push(file); } }); console.log(filteredFiles); });
Bu kod dizindeki her txt dosyasını tek tek okur ve 'Node.js' kelimesini içeren dosyaları çıktı olarak verir.
Bu örnekler, filtreleme işlemlerinin nasıl yapılabileceğine dair sadece bir başlangıçtır. Farklı filtreleme paketleri de mevcuttur ve bunların kullanımı hakkında detaylı bilgilendirme yapılacaktır.
Yeni Dosya Oluşturma ve İçerik Kaydetme
Filtreleme işlemi tamamlandıktan sonra, sonuçları yeni bir dosyada saklamak isteyebilirsiniz. Bu işlemi gerçekleştirmek için de Node.js'in sunduğu özellikleri kullanabilirsiniz. Aşağıdaki kod parçası, filtrelenmiş sonuçları yeni bir dosyada kaydetmenize olanak sağlar:
fs.writeFile('yeni_dosya.txt', data, (err) => { if (err) throw err; console.log('Dosya oluşturuldu ve içerik kaydedildi!');});
Burada, fs.writeFile() yöntemi kullanılarak yeni bir dosya oluşturulur ve içerik kaydedilir. İlk parametre, oluşturulacak dosyanın adını belirtir; ikinci parametre ise, dosyaya kaydedilecek veriyi içerir. Üçüncü parametre olarak bir geri çağırma işlevi geçirilir. Bu işlev, işlem tamamlandığında çalıştırılacaktır.
Bu yöntem kullanılarak, filtreleme işlemi sonucu elde edilen verileri yeni bir dosyada saklayabilirsiniz. Bu sayede, büyük dosyalar üzerinde çalışırken filtreleme işlemi için harcadığınız zamanı azaltabilir ve verilerin düzenli bir şekilde saklanmasını sağlayabilirsiniz.
Node.js Dosya Filtreleme Uygulamaları
Node.js ile dosya filtreleme işlemleri oldukça kolaydır. Bu işlem için farklı modüller ve paketler kullanılabilir. Node.js ile dosya filtreleme uygulamaları yaparken dosya işlemleri hakkında bilgi sahibi olmak gerekmektedir. Dosyaları okurken dosyaların içeriğindeki belirli kelimeleri veya ifadeleri arayabilir ve sonuçları filtreleyebilirsiniz.
Node.js dosya filtreleme uygulamaları yaparken kullanabileceğiniz bazı paketler şunlardır:
- fs-extra: Bu modül, Node.js'nin orijinal dosya sistemi modülünün işlevlerinin genişletilmiş bir sürümünü barındırır.
- glob: Bu paket, dosya arama işlemleri için kullanılır. Dosyaları uzantılarına, boyutlarına, tarihlerine ve diğer özelliklerine göre filtreleyebilirsiniz.
- chokidar: Bu paket, dosya işlemlerinde izleme işlemleri yapar. Bir dosyada değişiklik yapıldığında bildirim alabilirsiniz.
Dosya filtreleme uygulamaları yaparken, dosyaların işletim sistemine göre farklılık gösteren yolunu dikkate almak gerekmektedir. Windows ve Unix tabanlı sistemlerde dosya yolları farklılık gösterebilir. Bu nedenle, uygulamanızda dosya yolunu doğru bir şekilde belirtmelisiniz.
Uygulama #1 olarak dosyaları belirli dosya türleri veya boyutuna göre filtreleyebilirsiniz. Örneğin, sadece PDF uzantılı dosyaları veya belirli bir boyutun üzerindeki dosyaları alabilirsiniz.
Uygulama #2 olarak belirli bir kelime veya ifadeye göre dosya içeriğinde arama yapan bir uygulama yapabilirsiniz. Bu uygulamada dosyaların içeriğinde belirli bir kelime veya ifade arayabilir ve bulunan sonuçları filtreleyebilirsiniz.
Node.js ile dosya filtreleme uygulamaları yaparken, projenizin gereksinimlerine uygun olarak farklı paketler kullanabilirsiniz. Hangi paketi kullanırsanız kullanın, dosya işlemlerini doğru bir şekilde yönetmeniz gerekmektedir.
Uygulama #1
Dosyaların belirli dosya türleri veya boyutuna göre filtrelenmesi, Node.js ile kolayca yapılabilir. Bu uygulama, özellikle büyük miktarda dosya arasından belirli dosya türlerine veya boyutlara göre filtreleme yapmak isteyenler için faydalıdır.
İlk olarak, filtreleme işlemi yapmak istediğimiz dizinin yolunu programımıza tanımlamamız gerekiyor. Bu işlem path modülü kullanılarak yapılır. Daha sonra, bu dizinde yer alan dosyaları fs.readdir() metodunu kullanarak listeleyebiliriz.
Kod Örneği: |
---|
const path = require('path');const fs = require('fs');const folderPath = 'C:/Users/User/Desktop/Folder';fs.readdir(folderPath, (err, files) => { if (err) { throw err; } console.log(files);}); |
Bu kod bloğu, C:/Users/User/Desktop/Folder dizininde yer alan dosyaların adlarını konsola yazdıracaktır.
Dosyaların türlerine göre filtreleme yapmak için path.extname() metodunu kullanabiliriz. Bu metod, belirtilen dosya yolunun uzantısını döndürür. Belirli bir dosya türüne göre filtreleme yapmak için, listedeki her dosyanın uzantısına bakmamız gerekiyor.
Ayrıca, belirli bir boyutta veya boyuttan büyük veya küçük dosyaları filtrelemek için fs.stat() metodunu kullanabiliriz. Bu metod, belirtilen dosya yolunun ayrıntılı bilgilerini döndürür, boyut bilgisi de bu bilgiler arasındadır. Dosyaların boyutları byte cinsinden ifade edilir, filtreleme yapmak istediğimiz boyut ile karşılaştırmak için de byte cinsinden ifade etmemiz gerekiyor.
İşte, dosya türleri veya boyutuna göre filtreleme örnek kodu:
Kod Örneği: |
---|
const path = require('path');const fs = require('fs');const folderPath = 'C:/Users/User/Desktop/Folder';const extension = '.txt';const size = 1024;fs.readdir(folderPath, (err, files) => { if (err) { throw err; } files.forEach(file => { const filePath = path.join(folderPath, file); const fileExt = path.extname(filePath); fs.stat(filePath, (err, fileInfo) => { if (err) { throw err; } const fileSize = fileInfo.size; if (fileExt === extension && fileSize < size) { console.log(filePath); } }); });}); |
Bu kod bloğu, C:/Users/User/Desktop/Folder dizininde yer alan uzantısı .txt olan ve boyutu 1024 byte'tan küçük olan dosyaların yolunu konsola yazdıracaktır.
Uygulama #2
Bu uygulama, kullanıcının dosya içeriğinde belirli bir kelime veya ifade aramasına olanak tanır. Node.js ve fs modülü kullanarak dosya okuma işlemi gerçekleştirilir ve filtreleme işlemi belirtilen kelime veya ifade ile gerçekleştirilir.
Öncelikle, fs modülü require() fonksiyonu ile projeye dahil edilir. Ardından, readFileSync() fonksiyonu kullanılarak dosya okuma işlemi gerçekleştirilir. Dosya içeriği string olarak alınır ve includes() fonksiyonu ile belirlenen kelime veya ifade kontrol edilir. include fonksiyonu true değer döndürürse, dosya adı console.log() fonksiyonu ile ekrana yazdırılır.
Aşağıda verilen örnek kod bloğunda, 'sample.txt' dosyasının içeriği aranarak 'lorem' kelimesinin geçtiği dosya adları konsola yazdırılmaktadır.
const fs = require('fs');let fileList = fs.readdirSync('./'); fileList.forEach(file => { const content = fs.readFileSync(file, 'utf-8'); if (content.includes('lorem')) { console.log(file); } });
Bu şekilde dosya içeriğinde büyük ve küçük harf duyarlılığına takılmadan belirtilen kelimeler veya ifadeler aranarak dosya adları listelenebilir.