Skip to content

path

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

import { join, resolve, basename, dirname, extname, parse, format } from 'node:path';

APIคำอธิบายลักษณะคำอธิบายเพิ่มเติม
join()รวมส่วนของเส้นทางSynchronousรวมส่วนของเส้นทางด้วย separator ของระบบ
resolve()แก้ไขเส้นทางให้สมบูรณ์Synchronousแก้ไขเส้นทางแบบ absolute path
basename()ชื่อไฟล์จากเส้นทางSynchronousดึงส่วนชื่อไฟล์จากเส้นทาง
dirname()ไดเรกทอรีจากเส้นทางSynchronousดึงส่วนไดเรกทอรีจากเส้นทาง
extname()นามสกุลไฟล์จากเส้นทางSynchronousดึงส่วนนามสกุลไฟล์จากเส้นทาง
parse()แยกส่วนประกอบของเส้นทางSynchronousคืนค่าเป็น object ที่มี root, dir, base, ext, name
format()รวม object เป็นเส้นทางSynchronousรวม object จาก parse() กลับเป็นเส้นทาง

ตัวอย่าง

การใช้ join และ resolve

javascript
import { join, resolve } from "node:path";

// รวมเส้นทาง
const fullPath = join("folder", "subfolder", "file.txt");
console.log("เส้นทางที่รวมแล้ว:", fullPath);
// Output (Windows): folder\subfolder\file.txt
// Output (Linux/Mac): folder/subfolder/file.txt

// แก้ไขเส้นทางให้สมบูรณ์
const absolutePath = resolve("folder", "file.txt");
console.log("เส้นทางแบบสมบูรณ์:", absolutePath);
// Output: C:\Users\username\folder\file.txt (Windows)
// หรือ /home/username/folder/file.txt (Linux/Mac)

การดึงส่วนต่างๆ ของเส้นทาง

javascript
import { basename, dirname, extname } from "node:path";

const filePath = "/home/user/docs/report.txt";

console.log("ชื่อไฟล์:", basename(filePath)); // 'report.txt'
console.log("ไดเรกทอรี:", dirname(filePath)); // '/home/user/docs'
console.log("นามสกุลไฟล์:", extname(filePath)); // '.txt'

การใช้ parse และ format

javascript
import { format, parse } from "node:path";

const parsed = parse("/home/user/docs/report.txt");
console.log(parsed);
/* ผลลัพธ์:
{
  root: '/',
  dir: '/home/user/docs',
  base: 'report.txt',
  ext: '.txt',
  name: 'report'
}
*/

const formatted = format(parsed);
console.log(formatted); // '/home/user/docs/report.txt'

การใช้งานกับไฟล์จริง

javascript
import { dirname, join } from "node:path";
import { fileURLToPath } from "node:url";

// ดึงเส้นทางปัจจุบัน
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
console.log("ไดเรกทอรีปัจจุบัน:", __dirname);
// Output: /path/to/current/directory

// สร้างเส้นทางไปยังไฟล์ config
const configPath = join(__dirname, "config.json");
console.log("เส้นทาง config:", configPath);
// Output: /path/to/current/directory/config.json