偵測方法:1、使用「fs.exists(path,callback)」;2、使用「await util.promisify(fs.stat)('檔案路徑')」;3、使用「fs. access(path[,mode],callback);」。
本教學操作環境:windows7系統、nodejs 14.15.4版,DELL G3電腦。
nodejs偵測檔案是否存在的方法:
#1、使用fs.exists
exists()函數可以測試某個路徑下的檔案是否存在。語法格式:
fs.exists(path, callback)
path 欲偵測的檔案路徑
#callback 回呼
註:由於方法屬於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 對象,該物件提供了關於檔案的許多信息,例如檔案大小、建立時間等。其中有兩個方法 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 參數可以判斷一個檔案是否存在、是否可讀、是否可寫,回傳值為一個err 參數。const file = 'text.txt'; // 检查文件是否存在于当前目录中。 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 ? '不可写' : '可写'}`); }); // 检查文件是否存在于当前目录中、以及是否可写。 fs.access(file, fs.constants.F_OK | fs.constants.W_OK, (err) => { if (err) { console.error( `${file} ${err.code === 'ENOENT' ? '不存在' : '只可读'}`); } else { console.log(`${file} 存在,且可写`); } });【推薦學習:《
nodejs 教學》】
以上是nodejs怎麼偵測檔案是否存在的詳細內容。更多資訊請關注PHP中文網其他相關文章!