Bu yazıda Nodejs kullanarak dosya kopyalama işleminin nasıl gerçekleştirilebileceği üzerinde durulmuştur Dosya kopyalama işlemi, dosyaların yedeklenmesi ve paylaşılması gibi birçok önemli işlem için kullanılmaktadır Nodejs, sunucu tarafında programlama yapmak için kullanılan bir çalışma zamanı ortamıdır ve fs modülü sayesinde dosya işlemleri yapmamıza olanak sağlar Dosya okuma, yazma ve kopyalama işlemleri, fs modülünün sağladığı fonksiyonlar ile kolay bir şekilde gerçekleştirilebilir fsreaddir fonksiyonu, belirtilen dizindeki tüm dosyaları okuyarak bir dizi olarak döndürür fsreaddirSync fonksiyonu ise fsreaddir fonksiyonunun senkron versiyonudur ve programın işlemesi sırasında dosyaların okunmasını bekler Dosya kopyalama işlemi, birçok farklı amaç için kullanılabilecek önemli bir işlemdir ve Nodejs ile kolayca gerçek
Dosya kopyalama işlemi, günlük hayatta çok önemli bir işlemdir. Bu işlem, dosyaların yedeklenmesi ve paylaşılması gibi birçok önemli işlemi yapmamızı sağlar. Node.js, sunucu tarafında programlama yapmak için kullanılan bir çalışma zamanı ortamıdır. Bu yazıda, Node.js kullanarak dosya kopyalamayı nasıl yapabileceğimizi öğreneceğiz. Dosya kopyalama işlemi için fs modülü kullanılır. Bu modül, dosya işlemlerini kolaylaştıran bir modüldür. Dosya okuma, yazma ve kopyalama işlemlerini kolay bir şekilde yapmamızı sağlar.
Node.js Nedir?
Node.js, JavaScript tarafından desteklenen bir çalışma zamanı ortamıdır. İlk olarak Ryan Dahl tarafından 2009 yılında geliştirilmiş ve daha sonra Node.js Vakfı tarafından yönetilmeye başlamıştır. Node.js, sunucu tarafında programlama yapmak için kullanılmaktadır. Node.js'in en büyük avantajı yüksek performansıdır. Bu nedenle, ağ uygulamaları, API'ler ve veri depolama gibi birçok işlem, Node.js ile geliştirilmektedir.
Node.js ile geliştirme yapmak için birçok paket kullanılabilir. Bu paketler sayesinde, kolay ve hızlı bir şekilde uygulama geliştirme işlemleri gerçekleştirilebilir. Node.js, Cross-platform bir çalışma zamanı ortamıdır. Bu nedenle, birçok işletim sistemi üzerinde çalışabilir. Node.js, verimli bir şekilde çalışmak için hafıza yönetimi, olay döngüsü gibi kavramlara dayanmaktadır.
Dosya Kopyalamanın Önemi
Dosya kopyalama işlemi, birçok farklı amaç için kullanılabilen önemli bir işlemdir. Dosyaların yedeklenmesi ve paylaşılması gibi işlemler sırasında dosya kopyalama işlemi hayati bir öneme sahip olabilir. Eğer bir dosya kaybolursa, onu geri getirebilmek için yedeğinin olması gerekir. Dosya kopyalama, bu amaçla kullanılabilir.
Aynı şekilde, bir dosyanın paylaşılması gerektiğinde de kopyalanması gerekebilir. Başka bir işlem için kullanılacak dosyanın asıl kopyası korunarak, kopyası paylaşılmış olur. Bu, dosya işlemlerinin güvenliğini arttırmak için kullanılabilir.
fs.readdir() Fonksiyonu Kullanımı
fs.readdir() Fonksiyonu Kullanımı
Node.js, fs modülü sayesinde dosya işlemleri yapmamıza olanak sağlar. fs.readdir() fonksiyonu da, belirtilen dizindeki tüm dosyaları okuyarak bir dizi olarak döndürür. Bu sayede, dosyalar hakkında kolayca bilgi edinebiliriz.
Örneğin;
Dosya İsmi | Türü |
---|---|
index.html | HTML |
styles.css | CSS |
index.js | JavaScript |
Şeklinde bir çıktı elde edebiliriz.
Bunun için öncelikle, dosya adını ve yolu içeren bir string belirlemeniz gerekir. Ardından, fs.readdir() fonksiyonunu kullanabilirsiniz. Örneğin;
fs.readdir('./kaynakKlasor', (err, dosyalar) => { if (err) { console.log('Klasör okunurken bir hata oluştu: ', err); } else { console.log('Klasör okundu: ', dosyalar); }});
Bu örnekte, "./kaynakKlasor" parametresiyle belirtilen klasördeki tüm dosyalar okunarak "dosyalar" adındaki bir diziye atanır. Ardından, console.log() fonksiyonu aracılığıyla, dosyaların listesi ekrana yazdırılır.
fs.readdirSync() Kullanımı
fs.readdirSync() Kullanımı
fs.readdirSync() fonksiyonu, fs.readdir() fonksiyonunun senkron versiyonudur. Yani, bu fonksiyon dosyaları okurken programın işlemesi durur. Bu özellik bazı durumlarda avantaj sağlayabilir. Örneğin, kullanıcının belirli bir işlemi tamamlamasına izin vermek istiyorsanız ve programın işlemesi sırasında oluşan hataların kullanıcıya gösterilmesini istiyorsanız, fs.readdirSync() kullanabilirsiniz.
Örnek kod:
Dizin | Dosya Adı |
---|---|
/Users/username/documents | dosya1.txt |
/Users/username/documents | dosya2.txt |
/Users/username/documents | dosya3.txt |
Yukarıdaki örnekte, kullanıcının "documents" dizinindeki dosyaları okumak istediğinizi varsayalım. Bu işlemi fs.readdirSync() fonksiyonu ile gerçekleştirebilirsiniz. Aşağıdaki örnek kodda, dosyaların isimleri dizi olarak alınmaktadır:
const fs = require('fs');const files = fs.readdirSync('/Users/username/documents')console.log(files)
Görüldüğü gibi, yukarıdaki çalışma, dosyaların okunması sırasında programın işlemesini durdurmaktadır. Bu nedenle, bu fonksiyonun kullanımında dikkatli olunması gerekmektedir.
fs.readdir() Kullanımı
fs.readdir() Kullanımı
fs.readdir() fonksiyonu, fs.readdirSync() fonksiyonunun asenkron versiyonudur. Yani dosyalar okunurken programın işlemesi durmaz. Bu fonksiyon, belirtilen dizindeki dosyaları okur ve bir dizi olarak döndürür. Bu dizi, dosyaların adlarını içerir.
fs.readdir() fonksiyonunun kullanımı oldukça basittir. İlk olarak, fs modülü require() yöntemiyle projeye dahil edilir. Daha sonra, fs.readdir() fonksiyonuna iki parametre gönderilir: dosyaların bulunduğu dizin ve bir geri çağırma işlevi. Geri çağırma işlevi, fonksiyon işlemi tamamladığında çağırılır ve dosyaların listesi döndürülür.
Parametre | Açıklama |
---|---|
path | Dosyaların bulunduğu dizin. |
callback | Fonksiyonun işletilmesi tamamlandığında çağırılacak geri çağırma işlevi. |
Örnek bir fs.readdir() kullanımı şu şekildedir:
const fs = require('fs');fs.readdir('dosyaDizini', (err, files) => { if (err) { throw err; } console.log(files);});
Yukarıdaki örnek kodda, dosyaların bulunduğu dizin 'dosyaDizini' olarak belirlenmiştir. fs.readdir() fonksiyonu, dosyaları okur ve bir dizi olarak döndürür. Bu dizi, 'files' değişkeninde depolanır. Daha sonra, dosyalar console.log() yöntemiyle ekrana yazdırılır.
fs.copyFile() Fonksiyonu Kullanımı
Node.js ile dosya kopyalama işlemlerinizi gerçekleştirmek için fs.copyFile() fonksiyonu kullanabilirsiniz. Bu fonksiyon, belirtilen kaynak dosyasının hedef dosyaya kopyalanmasını sağlar. Bu işlev, birkaç adımda gerçekleştirilebilir. İlk olarak, dosyanın kaynağı ve hedefi belirtilir ve fonksiyon çağrılır. Eğer bir hata oluşursa, hata fırlatılır. Eğer hata yoksa, dosya başarılı bir şekilde kopyalanıp kopyalanmadığı kontrol edilir.
fs.copyFile() fonksiyonu, basit ve etkili bir yöntemle dosya kopyalamak için kullanılır. Ayrıca, Node.js'in asenkron yapısı nedeniyle, dosya kopyalama işlemi programın işlemesini durdurmak zorunda kalmadan yapılabilir. Fonksiyon, aynı zamanda hata yakalama ile birlikte işlem yapmak için kolay bir yol sunar.
Örneğin, aşağıdaki kod parçasında kaynak dosya 'kaynakDosya.txt' ve hedef dosya 'hedefDosya.txt' olarak belirtilmiştir:
const fs = require('fs');fs.copyFile('kaynakDosya.txt', 'hedefDosya.txt', (err) => { if (err) throw err; console.log('Dosya kopyalandı.');});
Bu kod parçası çalıştırıldığında, kaynak dosyası hedef dosyaya kopyalanacaktır. Başarılı bir şekilde kopyalandığı takdirde, konsol üzerinde 'Dosya kopyalandı.' şeklinde bir çıktı gösterilecektir.
fs.copyFile() fonksiyonu, Node.js ile dosya kopyalama işlemlerini kolaylaştıran ve hızlandıran bir yöntem sunar. Bu nedenle, dosya kopyalama işlemlerinde mutlaka kullanılması önerilir.
fs.createReadStream() ve fs.createWriteStream() Fonksiyonları Kullanımı
fs.createReadStream() fonksiyonu, belirtilen kaynak dosyasının okunmasını sağlar. Bu fonksiyon, yüksek boyutlu dosyaların hafızada bir kopyasını oluşturmadan büyük dosyaların okunmasına olanak tanır. Dolayısıyla, büyük dosyaların okunması sırasında sistem kaynaklarının daha verimli kullanılmasını sağlar.
fs.createWriteStream() fonksiyonu, belirtilen hedef dosyasına yazmaya izin verir. Bu fonksiyon, yüksek boyutlu dosyaları belleğe kopyalamadan büyük dosyaların yazılmasına izin verir. Böylece, büyük dosyaların yazılması esnasında sistem kaynaklarının daha verimli kullanılmasını sağlar.
Bu iki fonksiyon bir arada kullanılarak dosya kopyalama işlemi gerçekleştirilebilir. Bunun için ilk olarak fs.createReadStream() fonksiyonu kullanılarak kaynak dosya okunabilir. Daha sonra bu okunan dosya, fs.createWriteStream() fonksiyonu kullanılarak hedef dosyaya yazılabilir.
Örneğin, fs.createReadStream() fonksiyonu kullanarak kaynak dosyadan okunan veriler fs.createWriteStream() fonksiyonu kullanılarak hedef dosyaya yazılabilir. Bu sayede dosya kopyalama işlemi gerçekleştirilir. Bu işlemde aynı zamanda fs.read() ve fs.write() fonksiyonları da kullanılabilir. Ancak fs.createReadStream() ve fs.createWriteStream() fonksiyonları, daha hızlı ve daha etkili bir yöntem sunar.
Örnek Kod Uygulaması
Node.js, dosya kopyalama işlemi için birden fazla yöntem sunar. Bunlardan biri, fs.copyFile() fonksiyonunu kullanarak kaynak dosyayı hedef dosyaya kopyalamaktır. Aşağıdaki örnek kod, fs.copyFile() fonksiyonunu kullanarak dosya kopyalamanın nasıl yapılabileceğini göstermektedir.
Kaynak Kod | Hedef Kod |
---|---|
kaynakDosya.txt | hedefDosya.txt |
Kod şablonunda, fs modülü require() fonksiyonu ile dahil edilir ve copyFile() fonksiyonu kaynak dosya yolunu, hedef dosya yolunu ve bir geri çağrı işlevini kabul eder. Dosya kopyalama işlemi tamamlandığında, geri çağrı işlevi çağrılır ve bir hata durumunda hata fırlatılır veya işlem başarılıysa bir mesaj yazdırılır.
fs.createReadStream() ve fs.createWriteStream() fonksiyonları kullanılarak da dosya kopyalama işlemi gerçekleştirilebilir. Bunun için öncelikle kaynak dosya okunur ve bir dizi halinde tamponlanır. Sonra, hedef dosya yaratılır ve yazma işlemi gerçekleştirilir.
- fs.createReadStream() fonksiyonu, kaynak dosyayı okumak için kullanılır.
- fs.createWriteStream() fonksiyonu, hedef dosyayı oluşturmak ve yazmak için kullanılır.
Dosya kopyalama işlemi, createReadStream() ve createWriteStream() fonksiyonları ile donatılmış birkaç birleşik fonksiyon kullanılarak gerçekleştirilebilir veya ayrı ayrı fonksiyonlar kullanılarak yapılabilir.
Kod Parçası
Node.js ile dosya kopyalama işlemi, fs modülünün çeşitli fonksiyonları kullanılarak gerçekleştirilebilir. Öncelikle, işlem için gerekli olan fs modülü projeye dahil edilmelidir. Bu işlem için kullanabileceğimiz fonksiyonlar arasında fs.readdir(), fs.readdirSync(), fs.copyFile(), fs.createReadStream(), ve fs.createWriteStream() gibi fonksiyonlar yer alır. Bu fonksiyonlar sayesinde dosyaları okuyabilir, kopyalayabilir ve hedef dosyalara yazabiliriz.
Bu örnekte, dosya kopyalama işlemini fs.copyFile() fonksiyonu kullanarak gerçekleştiriyoruz. Kod parçasında, ilk olarak fs modülü projeye dahil ediliyor. Daha sonra, fs.copyFile() fonksiyonu kullanılarak kaynak dosya ile hedef dosya belirtiliyor. Fonksiyon asenkron bir şekilde çalışıyor. Eğer bir hata oluşursa, hata fırlatılır ve işlem durdurulur. Eğer bir hata oluşmazsa, işlem başarıyla tamamlanır ve kopyalama işlemi gerçekleştirilir.
Parametre | Açıklama |
---|---|
kaynakDizin | Kopyalanacak olan dosyanın yolu ve adı |
hedefDizin | Dosyanın kopyalanacağı dizin ve adı |
callback | Kopyalama işlemi tamamlandığında çağırılacak olan geri çağrı fonksiyonu |
Bu şekilde, fs.copyFile() fonksiyonu kullanarak kolay bir şekilde dosya kopyalama işlemi gerçekleştirilebilir. fs modülü diğer dosya işlemleri için de kullanılabilir olduğundan, detaylı bir şekilde öğrenmek oldukça faydalı olacaktır.
fs.copyFile('kaynakDosya.txt', 'hedefDosya.txt', (err)=Dosya kopyalamanın en yaygın kullanılan yöntemlerinden biri fs.copyFile() fonksiyonudur. Bu fonksiyon, belirtilen kaynak dosyasını hedef dosyaya kopyalamamızı mümkün kılar. İşlem, Node.js tarafından asenkron olarak gerçekleştirilir ve tamamlandığında bir geri çağırım fonksiyonu çağırılır. Öncelikle, fs modülü yüklendikten sonra kaynak dosya adı ve hedef dosya adı parametreleriyle birlikte fs.copyFile() fonksiyonu çağrılır. Fonksiyon tamamlandığında geri çağırım fonksiyonu çalışır ve bir hata oluşursa hatayı yakalar ve throw eder. Bu basit örnek kod, dosya kopyalamanın nasıl yapılabileceğinin bir örneğidir:
Kod Parçası |
---|
const fs = require('fs');fs.copyFile('kaynakDosya.txt', 'hedefDosya.txt', (err) => { if (err) throw err; console.log('Dosya kopyalandı.');}); |
Bu örnek koddaki fs.copyFile() fonksiyonunu kullanarak kaynak dosyayı ve hedef dosyayı belirtiyoruz. Geri çağırım fonksiyonunu kullanarak, dosya kopyalama işlemi tamamlandığında bir mesaj yazdırıyoruz. Bu işlem çok basittir ve Node.js kullanarak dosya kopyalama işlemi gerçekleştirmek için birçok yöntem vardır. fs modülü, Node.js tarafından sunulan gelişmiş bir dosya sistemi modülüdür ve dosya kopyalama işlemini gerçekleştirmek için kullanılan birkaç farklı yöntem içerir.
if (err) throw err;Yukarıdaki kodda, dosya kopyalama sırasında bir hata oluşması durumunda (err), bir hata fırlatmak için if (err) throw err; kullanılır. Bu, programın çalışmasını durdurur ve hata mesajını gösterir. Dolayısıyla, hata yakalama ve işleme sürecinde önemli bir adımdır.
console.log('Dosya kopyalandı.');Yukarıdaki kod, kaynak dosyanın hedef dosyaya kopyalanmasını sağlar. İşlem sırasında bir hata oluşursa, hata fırlatılır. Eğer hata oluşmazsa, 'Dosya kopyalandı.' mesajı konsola yazdırılır. Bu şekilde dosya kopyalama işlemi Node.js kullanılarak yapılmış olur.
});```Aşağıda verilen örnek kodda, fs.copyFile() fonksiyonu kullanılarak kaynak dosya belirtilen hedef dosyaya kopyalanmaktadır.
Özellik | Açıklama |
fs.copyFile() | Kaynak dosyayı hedef dosyaya kopyalar. |
kaynakDosya.txt | Kopyalanacak olan dosyanın adıdır. |
hedefDosya.txt | Kopyalanacak olan dosyanın hedef adıdır. |
(err) | Kopyalama işlemi sırasında oluşabilecek hataları belirler. |
throw err; | Kopyalama işlemi sırasında bir hata oluştuysa hata mesajı verir. |
console.log() | Kopyalama işlemi tamamlandığında ekrana bir mesaj yazdırır. |
Aşağıda verilen örnek kodu kullanarak, Node.js kullanarak dosya kopyalama işlemi yapabilirsiniz;
const fs = require('fs');fs.copyFile('kaynakDosya.txt', 'hedefDosya.txt', (err) => { if (err) throw err; console.log('Dosya kopyalandı.');});
Bu örnekte, 'kaynakDosya.txt' dosyası 'hedefDosya.txt' dosyasına kopyalanmaktadır. Dosya kopyalama işlemi sırasında bir hata oluşursa, hata mesajı ekrana yazdırır. Eğer hata oluşmazsa 'Dosya Kopyalandı.' mesajı ekrana yazdırılır.