常用方法
-
fs.access()
: 檢查文件是否存在消约,以及 Node.js 是否有權(quán)限訪問醇坝。 -
fs.appendFile()
: 追加數(shù)據(jù)到文件牡整。如果文件不存在,則創(chuàng)建文件疼约。 -
fs.chmod()
: 更改文件(通過傳入的文件名指定)的權(quán)限卤档。相關(guān)方法:fs.lchmod()
、fs.fchmod()
程剥。 -
fs.chown()
: 更改文件(通過傳入的文件名指定)的所有者和群組劝枣。相關(guān)方法:fs.fchown()
、fs.lchown()
织鲸。 -
fs.close()
: 關(guān)閉文件描述符舔腾。 -
fs.copyFile()
: 拷貝文件。 -
fs.createReadStream()
: 創(chuàng)建可讀的文件流搂擦。 -
fs.createWriteStream()
: 創(chuàng)建可寫的文件流稳诚。 -
fs.mkdir()
: 新建文件夾。 -
fs.mkdtemp()
: 創(chuàng)建臨時目錄瀑踢。 -
fs.rm()
: 刪除文件扳还,也可刪除目錄。 -
fs.rmdir()
: 刪除文件夾橱夭。 -
fs.rename()
: 重命名/移動 文件或文件夾氨距。 -
fs.open()
: 設(shè)置文件模式。 -
fs.readdir()
: 讀取目錄的內(nèi)容棘劣。 -
fs.readFile()
: 讀取文件的內(nèi)容俏让。相關(guān)方法:fs.read()。 -
fs.readlink()
: 讀取符號鏈接的值茬暇。 -
fs.realpath()
: 將相對的文件路徑指針(...)解析為完整的路徑首昔。 -
fs.stat()
: 返回文件(通過傳入的文件名指定)的狀態(tài),可用來判斷文件是否存在而钞。相關(guān)方法:fs.fstat()
沙廉、fs.lstat()
拘荡。 -
fs.symlink()
: 新建文件的符號鏈接臼节。 -
fs.truncate()
: 將傳遞的文件名標(biāo)識的文件截斷為指定的長度。相關(guān)方法:fs.ftruncate()
珊皿。 -
fs.link()
: 新建指向文件的硬鏈接网缝。 -
fs.unlink()
: 刪除文件或符號鏈接。 -
fs.unwatchFile()
: 停止監(jiān)視文件上的更改蟋定。 -
fs.utimes()
: 更改文件(通過傳入的文件名指定)的時間戳粉臊。相關(guān)方法:fs.futimes()
。 -
fs.watchFile()
: 開始監(jiān)視文件上的更改驶兜。相關(guān)方法:fs.watch()扼仲。 -
fs.writeFile()
: 將數(shù)據(jù)寫入文件远寸。相關(guān)方法:fs.write()。
使用例子
判斷文件/目錄是否存在
使用 fs.access
// 判斷文件/目錄 是否存在
fs.access('./data', fs.constants.F_OK, err => {
console.log(`${err ? '不存在' : '存在'}`);
})
// 判斷文件是否可讀
fs.access(file, constants.R_OK, (err) => {
console.log(`${file} ${err ? '不可讀' : '可讀'}`);
});
// 判斷文件是否可寫
fs.access(file, constants.W_OK, (err) => {
console.log(`${file} ${err ? '不可寫' : '可寫'}`);
});
使用 fs.stat()
fs.stat('./data', (err, stats) => {
if (err) console.log('文件/目錄不存在')
// 不存在時屠凶,stats 為 undefined
console.log('stats:', stats)
})
創(chuàng)建目錄
創(chuàng)建一級文件夾驰后,多層級會報錯
fs.mkdir('./data', err => {
if (err) throw err
})
創(chuàng)建多層級目錄
fs.mkdir('./data/test/test', { recursive: true }, err => {
if (err) throw err
})
刪除目錄
刪除指定文件夾,且該文件夾下必須為空
fs.rmdir('./data', err => {
if (err) throw err
})
刪除目錄矗愧,包括該目錄下的所有文件夾與文件
fs.rmdir('./data/test', { recursive: true }, err => {
if (err) throw err
})
同上一樣的效果
fs.rm('./data/test', { recursive: true }, err => {
if (err) throw err
})
刪除文件
使用 fs.unlink
fs.unlink('./data/test.txt', err => {
if (err) throw err
})
使用 fs.rm
fs.rm('./data/test.txt', err => {
if (err) throw err
})