Dark mode
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"),
);