溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

nodejs如何檢測文件是否存在

發(fā)布時間:2021-09-16 09:50:26 來源:億速云 閱讀:460 作者:小新 欄目:web開發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)nodejs如何檢測文件是否存在,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

檢測方法:1、使用“fs.exists(path,callback)”;2、使用“await util.promisify(fs.stat)('文件路徑')”;3、使用“fs.access(path[,mode],callback);”。

本教程操作環(huán)境:windows7系統(tǒng)、nodejs 14.15.4版,DELL G3電腦。

nodejs檢測文件是否存在的方法:

1、使用fs.exists

exists()函數(shù)可以測試某個路徑下的文件是否存在。語法格式:

fs.exists(path, callback)
  • path 欲檢測的文件路徑

  • callback 回調(diào)

    • 回調(diào)函數(shù)包含一個參數(shù)exists,true則文件存在,否則是false。

注:由于該方法屬于fs模塊,使用前需要引入fs模塊(var fs= require(“fs”) )

目前 fs.exists 已被廢棄,另外需要清楚, 只有在文件不直接使用時才去檢查文件是否存在

示例:

fs.exists('/etc/passwd', function (exists) {
  util.debug(exists ? "it's there" : "no passwd!");
});

2、使用 fs.stat

fs.stat返回一個 fs.Stats 對象,該對象提供了關(guān)于文件的很多信息,例如文件大小、創(chuàng)建時間等。其中有兩個方法 stats.isDirectory()、stats.isFile() 用來判斷是否是一個目錄、是否是一個文件。

const stats = await util.promisify(fs.stat)('text1.txt'); 
console.log(stats.isDirectory()); // false 
console.log(stats.isFile()); // true

若只是檢查文件是否存在,推薦使用下面的 fs.access。

3、使用 fs.access

fs.access 接收一個 mode 參數(shù)可以判斷一個文件是否存在、是否可讀、是否可寫,返回值為一個 err 參數(shù)。

const file = 'text.txt'; // 檢查文件是否存在于當(dāng)前目錄中。
fs.access(file, fs.constants.F_OK, (err) => {
 console.log(`${file} ${err ? '不存在' : '存在'}`);
}); // 檢查文件是否可讀。
fs.access(file, fs.constants.R_OK, (err) => {
 console.log(`${file} ${err ? '不可讀' : '可讀'}`); 
}); // 檢查文件是否可寫。 
fs.access(file, fs.constants.W_OK, (err) => {
 console.log(`${file} ${err ? '不可寫' : '可寫'}`);
 }); // 檢查文件是否存在于當(dāng)前目錄中、以及是否可寫。
fs.access(file, fs.constants.F_OK | fs.constants.W_OK, (err) => {
 if (err) {
  console.error( `${file} ${err.code === 'ENOENT' ? '不存在' : '只可讀'}`); 
  } else { 
  console.log(`${file} 存在,且可寫`); 
  } 
});

關(guān)于“nodejs如何檢測文件是否存在”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI