# NodeJS怎么刪除指定的文件和目錄
在Node.js開發中,經常需要對文件系統進行操作,包括刪除指定的文件或目錄。本文將詳細介紹如何使用Node.js內置的`fs`模塊實現文件和目錄的刪除操作。
---
## 一、刪除單個文件
使用`fs.unlink()`或`fs.unlinkSync()`可以刪除單個文件:
```javascript
const fs = require('fs');
// 異步刪除
fs.unlink('file.txt', (err) => {
if (err) throw err;
console.log('文件刪除成功');
});
// 同步刪除
try {
fs.unlinkSync('file.txt');
console.log('文件刪除成功');
} catch (err) {
console.error(err);
}
注意:如果文件不存在會拋出
ENOENT
錯誤,建議先通過fs.existsSync()
檢查文件是否存在。
使用fs.rmdir()
或fs.rmdirSync()
可以刪除空目錄:
// 異步刪除空目錄
fs.rmdir('empty_dir', (err) => {
if (err) throw err;
console.log('目錄刪除成功');
});
// 同步刪除空目錄
try {
fs.rmdirSync('empty_dir');
} catch (err) {
console.error(err);
}
fs.rm()
(推薦)Node.js 14.4+ 新增了支持遞歸刪除的fs.rm()
方法:
// 異步遞歸刪除
fs.rm('non_empty_dir', { recursive: true }, (err) => {
if (err) throw err;
console.log('目錄已遞歸刪除');
});
// 同步遞歸刪除
fs.rmSync('non_empty_dir', { recursive: true });
對于更早版本的Node.js,可以自行實現遞歸刪除:
function deleteFolderRecursive(path) {
if (fs.existsSync(path)) {
fs.readdirSync(path).forEach(file => {
const curPath = `${path}/${file}`;
if (fs.lstatSync(curPath).isDirectory()) {
deleteFolderRecursive(curPath);
} else {
fs.unlinkSync(curPath);
}
});
fs.rmdirSync(path);
}
}
path.join()
處理跨平臺路徑問題操作類型 | 同步方法 | 異步方法 | 備注 |
---|---|---|---|
刪除文件 | unlinkSync() |
unlink() |
|
刪除空目錄 | rmdirSync() |
rmdir() |
|
遞歸刪除目錄 | rmSync() |
rm() |
Node.js 14.4+ 支持 |
掌握這些文件操作方法,可以幫助你更高效地管理Node.js應用中的文件系統資源。 “`
這篇文章共計約550字,采用Markdown格式編寫,包含代碼示例、注意事項和總結表格,適合作為技術文檔參考。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。