30 روز با Node - روز دوم: سیستم فایل

20 مرداد 1397
nodejs-filesystem

مقدمه‌ای بر سیستم فایل در نود جی اس

نود جی اس کارآیی فایل را با فراهم کردن بسته هایی درخصوص توابع پازیکس (POSIX) فراهم کرده است. می‌دانید که پازیکس یک رابط برنامه نویسی نرم افزار است که با استفاده از نرم افزارهای واسط و پوسته خط فرمان، تعامل میان یونیکس را با دیگر سیستم‌های عامل ممکن می سازد. هدف از پازیکس آسان کردن وظایف گسترش نرم افزار های چندسکویی است که آن هم بوسیله‌ی مجموعه‌ای از دستورالعمل هایی برای نویسندگان سیستم عامل‌ها میسر می‌شود. به کمک پازیکس، یک توسعه دهنده، برنامه را یکباره برای همه‌ی سیستم عامل‌ها می‌نویسد.

در نود جی اس، بسته به الزامات کاربر، متدهای ورودی/خروجی فایل در دوحالت ناهمزمان و همزمان شکل می‌گیرند. به‌منظور استفاده از این قابلیت‌ها بایستی به شکل زیر ماژول fs را با دستور require بکار بگیریم:

var fs = require('fs');

با این کار، اکنون قادرخواهیم بود به شرحی که در ادامه خواهید دید تمامی اعمال مدیریت فایل‌ها را، شامل خواندن، نوشتن، افزودن به محتوای فایل و حذف فایل، به دوروش همزمان و ناهمزمان انجام دهید.

خواندن یک فایل در نود جی اس

دو روش برای این کار وجود دارد:

  1. خواندن فایل به شیوه ناهمزمان:
//Reading a File Asynchronously using nodejs

var fs=require('fs');
fs.readFile('message.txt', (err, data) => {
    if (err)
          throw err;
    console.log("Content :  " + data);
});

  1. خواندن فایل به شیوه همزمان:
//Reading a File Synchronously using nodejs

var fs = require('fs');
var filename = 'content.txt'; //Name of the file to be read
var content = fs.readFileSync(filename);
console.log('Content : ' + content);

نوشتن در فایل در نود جی اس

این کار هم به دو روش امکان پذیر است:

۱. نوشتن در فایل به شیوه ناهمزمان:

//Writing a File Asynchronously using nodejs

var fs =  require('fs');
var content= "this is the content in the file";
fs.writeFile('message.txt', content , (err) => {
    if (err)
          throw err;
    console.log('It\'s saved!');
});

2. نوشتن در فایل به شیوه همزمان:

//Writing a File Synchronously using nodejs

var fs = require('fs');
var content = "We are writing this file synchronously using node.js";
fs.writeFileSync('content.txt', content);
console.log("File Written Successfully");

افزودن به محتوای فایل در نود جی اس

و باز هم مشاهده خواهیم کرد که این کار به دو روش امکان پذیر است:

۱. افزودن به فایل به شیوه ناهمزمان

//Appendig a File Asynchronously using nodejs

var fs = require('fs');
new_data = "This data will be appended at the end of the file.";
fs.appendFile('input.txt', new_data , (err) => {
    if(err)
          throw err;
    console.log('The new_content was appended successfully');
});

                                                      

۲. افزودن به فایل به شیوه همزمان

//Synchronously file appending operation in nodejs

var fs = require('fs');
var content = "We are Appending this file synchronously using node.js";
fs.appendFileSync('input.txt', content);
console.log("File Appended Successfully");

 تغییر نام فایل در نود جی اس

همانند حالات قبل، این کار به دو روش امکان پذیر است:

۱. تغییر نام فایل به شیوه ناهمزمان

var fs = require('fs');
//باید آدرس نسبی فایل را نسبت به دایرکتوری کنونی بنویسید
fs.rename('data.txt', 'new_data.txt', (err) => {
    if (err)
          throw err;
    console.log('File renamed successfully');
});
// برای وارسی طبیعت ناهمزمانی فایل!
console.log("This method is Asynchronous");

2. تغییر نام فایل به شیوه همزمان

var fs =  require('fs');
//باید آدرس نسبی فایل را نسبت به دایرکتوری کنونی بنویسید
fs.renameSync('data.txt', 'newData.txt');
console.log('File renamed successfully');
// برای وارسی طبیعت همزمانی فایل!
console.log("This method is Synchronous");

حذف فایل در نود جی اس

حذف فایل نیز همانند اعمال دیگر، به دو روش امکان پذیر است:

۱. حذف فایل به شیوه ناهمزمان

var fs = require('fs');
var filename = 'content.txt';
fs.unlink(filename, (err) => {
    if (err)
          throw err;
    console.log('File deleted successfully');
});

۲. حذف فایل به شیوه همزمان:

var fs = require('fs');
var filename = 'data.txt';
fs.unlinkSync(filename);
console.log('File Deleted Successfully');

خلاصه:

در پایان روز دوم، از سری آموزش‌های نود جی اس، درسهایی درمورد کار با سیستم فایل فراگرفتیم و متوجه شدیم که همه عملیات اصلی سیستم فایل به دو شیوه همزمان و ناهمزمان انجام پذیر است:

  • مقدمه ای بر سیستم فایل
  • خواندن یک فایل به کمک نود جی اس
    1. fs.readFile: خواندن فایل به شیوه ناهمزمان.
    2. fs.readFileSync: خواندن فایل به شیوه همزمان.
  • نوشتن در فایل به کمک نود جی اس
    1. fs.writeFile: نوشتن در فایل به شیوه ناهمزمان.
    2. fs.writeFileSync: نوشتن در فایل به شیوه همزمان.
  • افزودن به فایل به کمک نود جی اس
    1. fs.appendFile: افزودن به انتهای فایل به شیوه ناهمزمان.
    2. fs.appendFileSync: افزودن به انتهای فایل به شیوه همزمان.
  • تغییر نام فایل به کمک نود جی اس
    1. fs.rename: تغییرنام فایل به شیوه ناهمزمان.
    2. fs.renameSync:تغییرنام فایل به شیوه همزمان.
  • حذف (قطع ارتباط) فایل به کمک نود جی اس
    1. fs.unlink: حذف فایل به شیوه ناهمزمان.
    2. fs.unlinkSync:حذف فایل به شیوه همزمان.
نویسنده شوید

دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.