fs讀取文件
process.cwd() 是 Node.js 中的一個方法,它返回 Node.js 進程的當前工作目錄。這個工作目錄通常是啟動 Node.js 進程時所在的目錄。
const fs = require('fs');
const path = require('path');// 讀取指定目錄
const configPath = path.join(process.cwd(), 'config.json');
// const configPath = path.join(process.cwd(), 'src/config.json');
// 讀取文件
const config = fs.readFileSync(configPath, 'utf-8');
console.log(config);
fs 讀取目錄
const fs = require('fs');
const path = require('path');// 指定要讀取的目錄路徑
const directoryPath = './exampleDirectory';// 使用 fs.readdir() 讀取目錄
fs.readdir(directoryPath, (err, files) => {if (err) {console.error(`讀取目錄時發生錯誤: ${err}`);return;}// 文件數組包含了目錄中的所有文件和子目錄files.forEach(file => {console.log(file);});
});// 異步/等待版本的讀取目錄
// (注意:此示例使用了 async/await,因此需要在異步函數中使用)
async function readDirectoryAsync() {try {const files = await fs.promises.readdir(directoryPath);files.forEach(file => {console.log(file);});} catch (err) {console.error(`異步讀取目錄時發生錯誤: ${err}`);}
}// 調用異步函數
readDirectoryAsync();
fs判斷是否為文件夾
const fs = require('fs');const path = './example/folder'; // 要檢查的路徑fs.stat(path, (err, stats) => {if (err) {console.error('發生錯誤:', err);return;}if (stats.isDirectory()) {console.log('這是一個文件夾');} else {console.log('這不是一個文件夾');}
});
fs 獲取文件名
const fs = require('fs');
const path = require('path');// 假設你有一個包含路徑的文件名字符串
const filePath = '/example/directory/test.txt';// 使用 path.basename 獲取文件名
const fileName = path.basename(filePath);console.log(fileName); // 輸出: test.txt
獲取文件擴展名
const path = require('path');// 假設你有一個包含路徑的文件名字符串
const filePath = '/example/directory/牡蠣.txt';// 使用 path.extname 獲取文件擴展名
const fileExtension = path.extname(filePath);console.log(fileExtension); // 輸出: .txt
實踐:
const fs = require('fs');
const path = require('path');// 使用 fs.readdir() 讀取目錄
const readdir = (directoryPath, isRoot) => fs.readdir(directoryPath, (err, files) => {if (err) {console.error(`讀取目錄時發生錯誤: ${err}`);return;}// 文件數組包含了目錄中的所有文件和子目錄files.forEach(file => {const pPath = isRoot ? path.join(process.cwd(), `${directoryPath}/${file}`) : `${directoryPath}/${file}`;fs.stat(pPath, (err, stats) => {if (err) {console.error('發生錯誤:', err);return;}if (stats.isDirectory()) {console.log('文件夾:', pPath);readdir(pPath);} else {const readFile = fs.readFileSync(pPath, 'utf-8');console.log(`------>READ FILE ${pPath} START:<------\n`, readFile, `\n------>READ FILE ${pPath} END<------\n`);}})});
});readdir('./src', true);
運行腳本即可