العمل مع المجلدات في Node

كيفية التفاعل مع المجلدات باستخدام Node

Node.jsfsتوفر الوحدة الأساسية العديد من الطرق المفيدة التي يمكنك استخدامها للعمل مع المجلدات.

تحقق من وجود مجلد

يستخدمfs.access()للتحقق مما إذا كان المجلد موجودًا ويمكن لـ Node الوصول إليه بأذوناته.

انشاء مجلد جديد

يستخدمfs.mkdir()أوfs.mkdirSync()لإنشاء مجلد جديد.

const fs = require('fs')

const folderName = ‘/Users/flavio/test’

try { if (!fs.existsSync(dir)){ fs.mkdirSync(dir) } } catch (err) { console.error(err) }

اقرأ محتوى الدليل

يستخدمfs.readdir()أوfs.readdirSyncلقراءة محتويات الدليل.

يقرأ هذا الجزء من التعليمات البرمجية محتوى المجلد ، من الملفات والمجلدات الفرعية ، ويعيد مسارها النسبي:

const fs = require('fs')
const path = require('path')

const folderPath = ‘/Users/flavio’

fs.readdirSync(folderPath)

يمكنك الحصول على المسار الكامل:

fs.readdirSync(folderPath).map(fileName => {
  return path.join(folderPath, fileName)
}

يمكنك أيضًا تصفية النتائج لإرجاع الملفات فقط واستبعاد المجلدات:

const isFile = fileName => {
  return fs.lstatSync(fileName).isFile()
}

fs.readdirSync(folderPath).map(fileName => { return path.join(folderPath, fileName) }).filter(isFile)

أعد تسمية مجلد

يستخدمfs.rename()أوfs.renameSync()لإعادة تسمية المجلد. المعلمة الأولى هي المسار الحالي ، والثانية هي المسار الجديد:

const fs = require('fs')

fs.rename(’/Users/flavio’, ‘/Users/roger’, err => { if (err) { console.error(err) return } //done })

fs.renameSync()هي النسخة المتزامنة:

const fs = require('fs')

try { fs.renameSync(’/Users/flavio’, ‘/Users/roger’) } catch (err) { console.error(err) }

قم بإزالة مجلد

يستخدمfs.rmdir()أوfs.rmdirSync()لإزالة مجلد.

يمكن أن تكون إزالة مجلد يحتوي على محتوى أكثر تعقيدًا مما تحتاج إليه.

في هذه الحالة ، أوصي بتثبيت برنامجfs-extraالوحدة النمطية ، والتي تحظى بشعبية كبيرة وتتم صيانتها جيدًا ، وهي بديل بديل لـfsالوحدة النمطية ، مما يوفر المزيد من الميزات فوقها.

في هذه الحالةremove()الطريقة هي ما تريد.

قم بتثبيته باستخدام ملفات

npm install fs-extra

واستخدمه مثل هذا:

const fs = require('fs-extra')

const folder = ‘/Users/flavio’

fs.remove(folder, err => { console.error(err) })

يمكن استخدامه أيضًا مع الوعود:

fs.remove(folder).then(() => {
  //done
}).catch(err => {
  console.error(err)
})

أو مع عدم التزامن / انتظار:

async function removeFolder(folder) {
  try {
    await fs.remove(folder)
    //done
  } catch (err) {
    console.error(err)
  }
}

const folder = ‘/Users/flavio’ removeFolder(folder)

تحميل مجانيكتيب Node.js


المزيد من دروس العقدة: