Node.js এর fs (File System) মডিউল ব্যবহার করে Electron অ্যাপ্লিকেশনে ফাইল সিস্টেমের সাথে ইন্টারঅ্যাক্ট করা যায়। আপনি ফাইল পড়া, লেখার মতো কার্যক্রম করতে পারবেন। Electron অ্যাপ্লিকেশনগুলো Main Process-এ Node.js এর fs মডিউল ব্যবহার করে ফাইল পরিচালনা করে, এবং Renderer Process-এ এটি ব্যবহারের জন্য কিছু কনফিগারেশন প্রয়োজন।
এখানে, Electron অ্যাপ্লিকেশন তৈরি করার মাধ্যমে fs মডিউল ব্যবহার করে ফাইল পড়া এবং লেখা দেখানো হয়েছে।
১. Main Process থেকে fs মডিউল ব্যবহার করে ফাইল পড়া এবং লেখা
fs মডিউলটি Node.js এর অংশ এবং এটি ফাইল সিস্টেমে কাজ করার জন্য ব্যবহৃত হয়। Main Process-এ এই মডিউল ব্যবহার করা হয়।
উদাহরণ: Main Process - main.js
const { app, BrowserWindow, ipcMain } = require('electron');
const fs = require('fs'); // fs মডিউল ইম্পোর্ট করা
let mainWindow;
app.on('ready', () => {
mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true // Renderer Process-এ Node.js ইন্টিগ্রেশন সক্রিয় করা
}
});
mainWindow.loadFile('index.html');
// ফাইল লেখা
ipcMain.on('write-file', (event, data) => {
fs.writeFile('output.txt', data, (err) => {
if (err) {
console.log('ফাইল লেখা সম্ভব হয়নি:', err);
event.reply('write-file-reply', 'ফাইল লেখার সময় সমস্যা হয়েছে');
} else {
console.log('ফাইল সফলভাবে লেখা হয়েছে');
event.reply('write-file-reply', 'ফাইল সফলভাবে লেখা হয়েছে');
}
});
});
// ফাইল পড়া
ipcMain.on('read-file', (event) => {
fs.readFile('output.txt', 'utf8', (err, data) => {
if (err) {
console.log('ফাইল পড়া সম্ভব হয়নি:', err);
event.reply('read-file-reply', 'ফাইল পড়ার সময় সমস্যা হয়েছে');
} else {
console.log('ফাইলের ডেটা:', data);
event.reply('read-file-reply', data);
}
});
});
});
fs.writeFile(): এটি একটি ফাইল তৈরি করে এবং তাতে ডেটা লিখে।fs.readFile(): এটি একটি ফাইল থেকে ডেটা পড়ে এবং সেই ডেটাutf8এনকোডিং ফর্ম্যাটে রিটার্ন করে।
২. Renderer Process থেকে ফাইল পড়া এবং লেখা
Renderer Process থেকে Main Process এ মেসেজ পাঠানোর জন্য IPC (Inter-Process Communication) ব্যবহার করা হয়। ipcRenderer ব্যবহার করে Renderer Process থেকে ফাইল পড়া বা লেখা এর জন্য কমান্ড পাঠানো হয়।
উদাহরণ: Renderer Process - index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Renderer Process</title>
</head>
<body>
<h1>ফাইল পড়া এবং লেখা</h1>
<!-- ফাইল লেখা -->
<textarea id="writeData" placeholder="ডেটা লিখুন এখানে"></textarea><br>
<button id="writeFileBtn">ফাইল লিখুন</button>
<!-- ফাইল পড়া -->
<button id="readFileBtn">ফাইল পড়ুন</button>
<p id="fileContent"></p>
<script>
const { ipcRenderer } = require('electron');
// ফাইল লেখা
document.getElementById('writeFileBtn').addEventListener('click', () => {
const data = document.getElementById('writeData').value;
ipcRenderer.send('write-file', data); // Main Process এ মেসেজ পাঠানো
});
// ফাইল পড়া
document.getElementById('readFileBtn').addEventListener('click', () => {
ipcRenderer.send('read-file'); // Main Process এ ফাইল পড়ার জন্য মেসেজ পাঠানো
});
// Main Process থেকে উত্তর গ্রহণ
ipcRenderer.on('write-file-reply', (event, message) => {
alert(message); // ফাইল লেখার উত্তর
});
ipcRenderer.on('read-file-reply', (event, data) => {
document.getElementById('fileContent').textContent = data; // ফাইলের কনটেন্ট দেখানো
});
</script>
</body>
</html>
ipcRenderer.send(): Renderer Process থেকে Main Process-এ মেসেজ পাঠায়, যেমন ফাইল লেখা বা পড়ার অনুরোধ।ipcRenderer.on(): Main Process থেকে আসা সাড়া গ্রহণ করে, যেমন ফাইল লেখা বা পড়ার ফলাফল।
৩. ফাইল পড়া এবং লেখা সম্পর্কিত কিছু গুরুত্বপুর্ণ বিষয়
fs.writeFile(): যদি ফাইলটি না থাকে, এটি একটি নতুন ফাইল তৈরি করে। তবে ফাইলটি আগে থেকেই বিদ্যমান থাকলে এটি সেই ফাইলটি নতুন করে রিপ্লেস করে দিবে।fs.readFile(): এটি নির্দিষ্ট ফাইল থেকে ডেটা পড়ে এবং অ্যাসিঙ্ক্রোনাস (asynchronous) পদ্ধতিতে কাজ করে, অর্থাৎ ফাইল পড়া শেষ না হওয়া পর্যন্ত অন্যান্য কোডের কার্যক্রম চলতে থাকে।- ফাইল পাথ (File Path): যদি আপনি কোনও নির্দিষ্ট ডিরেক্টরিতে ফাইল তৈরি বা পড়তে চান, তাহলে ফাইলের পূর্ণ পাথ (path) ব্যবহার করতে হবে, যেমন
fs.readFile('path/to/file.txt', 'utf8', callback);
সারাংশ
fsমডিউল Node.js এর একটি শক্তিশালী মডিউল, যা ফাইল সিস্টেমের সাথে কাজ করার জন্য ব্যবহৃত হয়।- Electron অ্যাপ্লিকেশনে Main Process-এ
fsমডিউল ব্যবহার করে ফাইল পড়া এবং লেখা করা যায়। - Renderer Process থেকে Main Process এ মেসেজ পাঠিয়ে ফাইল সিস্টেমের কাজ করা হয় IPC (Inter-Process Communication) ব্যবহার করে।
Read more