إحصائيات ملفات Node.js
يأتي كل ملف مع مجموعة من التفاصيل التي يمكننا فحصها باستخدام Node.js. على وجه الخصوص، باستخدام طريقة stat()
التي يوفرها وحدة fs.
تدعوها بمرور مسار الملف، وبمجرد حصول Node.js على تفاصيل الملف، ستقوم باستدعاء دالة المُراجعة التي تمررها، مع معلمتين: رسالة خطأ، وإحصائيات الملف:
js
import fs from 'node:fs'
fs.stat('/Users/joe/test.txt', (err, stats) => {
if (err) {
console.error(err)
}
// لدينا إمكانية الوصول إلى إحصائيات الملف في `stats`
})
يوفر Node.js أيضًا طريقة متزامنة، والتي تُحجِز الخيط حتى تصبح إحصائيات الملف جاهزة:
js
import fs from 'node:fs'
try {
const stats = fs.statSync('/Users/joe/test.txt')
} catch (err) {
console.error(err)
}
تُضمّن معلومات الملف في متغير الإحصائيات. ما نوع المعلومات التي يمكننا استخراجها باستخدام الإحصائيات؟
الكثير، بما في ذلك:
- ما إذا كان الملف هو دليل أو ملف، باستخدام
stats.isFile()
وstats.isDirectory()
- ما إذا كان الملف رابطًا رمزيًا باستخدام
stats.isSymbolicLink()
- حجم الملف بالبايت باستخدام
stats.size
.
هناك طرق متقدمة أخرى، ولكن الجزء الأكبر مما ستستخدمه في برمجتك اليومية هو هذا.
js
import fs from 'node:fs'
fs.stat('/Users/joe/test.txt', (err, stats) => {
if (err) {
console.error(err)
return
}
stats.isFile() // true
stats.isDirectory() // false
stats.isSymbolicLink() // false
stats.size // 1024000 //= 1MB
})
يمكنك أيضًا استخدام طريقة fsPromises.stat()
القائمة على الوعود التي توفرها وحدة fs/promises
إذا أردت:
js
import fs from 'node:fs/promises'
try {
const stats = await fs.stat('/Users/joe/test.txt')
stats.isFile() // true
stats.isDirectory() // false
stats.isSymbolicLink() // false
stats.size // 1024000 //= 1MB
} catch (err) {
console.log(err)
}
يمكنك قراءة المزيد حول وحدة fs في وثائق وحدة نظام الملفات.