Skip to content

fs

fs เป็นโมดูลในตัวของ Node.js ที่ใช้สำหรับการทำงานกับระบบไฟล์ ทั้งการอ่าน/เขียนไฟล์, การจัดการไดเรกทอรี และการตรวจสอบสถานะไฟล์

import { readFile, writeFile, readdir, mkdir, stat, access } from 'node:fs/promises';

APIคำอธิบายลักษณะคำอธิบายเพิ่มเติม
readFile()อ่านข้อมูลจากไฟล์Asynchronousใช้สำหรับอ่านเนื้อหาไฟล์แบบ async
writeFile()เขียนข้อมูลลงไฟล์Asynchronousใช้สำหรับเขียนเนื้อหาลงไฟล์แบบ async
readdir()อ่านรายการไฟล์ในไดเรกทอรีAsynchronousใช้สำหรับอ่านรายการไฟล์และโฟลเดอร์ในไดเรกทอรี
mkdir()สร้างไดเรกทอรีใหม่Asynchronousใช้สำหรับสร้างโฟลเดอร์ใหม่
stat()ตรวจสอบข้อมูลไฟล์Asynchronousใช้สำหรับตรวจสอบขนาดไฟล์, เวลาสร้าง-แก้ไข และอื่นๆ
access()ตรวจสอบสิทธิ์การเข้าถึงไฟล์Asynchronousใช้ตรวจสอบว่าสามารถอ่าน/เขียนไฟล์ได้หรือไม่

ตัวอย่าง

การอ่านและเขียนไฟล์

js
import { readFile, writeFile } from "node:fs/promises";

// อ่านไฟล์
const data = await readFile("input.txt", "utf8");
console.log(data); // Output: เนื้อหาของไฟล์ input.txt

// เขียนไฟล์
await writeFile("output.txt", "Hello World");
console.log("เขียนไฟล์ output.txt เรียบร้อยแล้ว");

การจัดการไดเรกทอรี

js
import { mkdir, readdir } from "node:fs/promises";

// สร้างโฟลเดอร์
await mkdir("new-folder");
console.log("สร้างโฟลเดอร์ new-folder เรียบร้อยแล้ว");

// อ่านรายการไฟล์
const files = await readdir(".");
console.log("ไฟล์และโฟลเดอร์ในไดเรกทอรีปัจจุบัน:", files);
// Output: ['file1.txt', 'file2.js', 'new-folder', ...]

การตรวจสอบไฟล์

js
import { access, stat } from "node:fs/promises";

// ตรวจสอบข้อมูลไฟล์
const stats = await stat("file.txt");
console.log(`ขนาดไฟล์: ${stats.size} bytes`); // Output: ขนาดไฟล์: 1024 bytes
console.log(`สร้างเมื่อ: ${stats.birthtime}`); // Output: สร้างเมื่อ: <วันที่เวลา>

// ตรวจสอบสิทธิ์
try {
  await access("file.txt");
  console.log("สามารถเข้าถึงไฟล์ได้");
} catch (err) {
  console.error("ไม่สามารถเข้าถึงไฟล์:", err.message);
}

การใช้งานแบบ sync (ไม่แนะนำ)

js
import { readFileSync } from "node:fs";

// อ่านไฟล์แบบ sync (บล็อกการทำงาน)
const data = readFileSync("file.txt", "utf8");
console.log(data);

การใช้งานกับ Stream

js
import { createReadStream, createWriteStream } from "node:fs";
import { pipeline } from "node:stream/promises";

// คัดลอกไฟล์ขนาดใหญ่ด้วย Stream
await pipeline(
  createReadStream("large-file.txt"),
  createWriteStream("copy-large-file.txt"),
);