首頁 >web前端 >前端問答 >nodejs怎麼偵測檔案是否存在

nodejs怎麼偵測檔案是否存在

青灯夜游
青灯夜游原創
2021-09-15 17:57:0812050瀏覽

偵測方法:1、使用「fs.exists(path,callback)」;2、使用「await util.promisify(fs.stat)('檔案路徑')」;3、使用「fs. access(path[,mode],callback);」。

nodejs怎麼偵測檔案是否存在

本教學操作環境:windows7系統、nodejs 14.15.4版,DELL G3電腦。

nodejs偵測檔案是否存在的方法:

#1、使用fs.exists

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

fs.exists(path, callback)
  • path 欲偵測的檔案路徑

  • #callback 回呼

    • ##回呼函數包含一個參數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 對象,該物件提供了關於檔案的許多信息,例如檔案大小、建立時間等。其中有兩個方法 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn