第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

同步檢查Node.js中是否存在文件/目錄

同步檢查Node.js中是否存在文件/目錄

繁星點點滴滴 2019-07-13 16:40:05
如何同步檢查,使用Node.js文件或目錄是否存在?
查看完整描述

3 回答

?
MM們

TA貢獻1886條經(jīng)驗 獲得超2個贊

你可以用fs.existsSync():

const fs = require("fs"); // Or `import fs from "fs";` with ESMif (fs.existsSync(path)) {
    // Do something}

它被廢棄了好幾年,但現(xiàn)在不再是了。從醫(yī)生那里:

請注意fs.exists()是反對的,但是fs.existsSync()不是。(回調(diào)參數(shù)為fs.exists()接受與其他Node.js回調(diào)不一致的參數(shù)。fs.existsSync()不使用回調(diào)。)

你特別要求同步檢查,但如果您可以使用異步用I/O代替檢查(通常最好用I/O),使用fs.promises.access如果你用async職能或fs.access(自exists不受歡迎)如果沒有:

async職能:

try {
    await fs.promises.access("somefile");
    // The check succeeded} catch (error) {
    // The check failed}

或者是回調(diào):

fs.access("somefile", error => {
    if (!error) {
        // The check succeeded
    } else {
        // The check failed
    }});


查看完整回答
反對 回復(fù) 2019-07-13
?
白板的微信

TA貢獻1883條經(jīng)驗 獲得超3個贊

從源代碼來看,有一個同步版本的path.exists - path.existsSync..好像是在醫(yī)生那里漏掉的。

最新情況:

path.existspath.existsSync現(xiàn)在棄用

fs.existsfs.existsSync也有不受歡迎..使用fs.stat()fs.access()相反。


查看完整回答
反對 回復(fù) 2019-07-13
?
桃花長相依

TA貢獻1860條經(jīng)驗 獲得超8個贊

使用當(dāng)前推薦的API(截至2015年)(根據(jù)節(jié)點文檔),我所做的工作如下:

var fs = require('fs');function fileExists(filePath){
    try
    {
        return fs.statSync(filePath).isFile();
    }
    catch (err)
    {
        return false;
    }}

作為對EPERM問題的回應(yīng),@寬頻在評論中提出了一個很好的觀點。在許多情況下,fileExist()可能不是考慮這個問題的好方法,因為fileExist()不能真正保證布爾返回。您可以確定文件是否存在,但也可能會出現(xiàn)權(quán)限錯誤。權(quán)限錯誤并不一定意味著文件存在,因為您可能對包含正在檢查的文件的目錄缺乏權(quán)限。當(dāng)然,在檢查文件是否存在時可能會遇到其他錯誤。

所以我上面的代碼確實是do FileExistAndDoIHaveAccessToit(),但是您的問題可能是do FileNotExistAndCouldICreateit(),這將是完全不同的邏輯(這需要考慮EPERM錯誤,等等)。

雖然fs.352 sSync的答案直接回答了這里提出的問題,但這往往不是您想要的問題(您不只是想知道路徑上是否存在“某事”,您可能關(guān)心的是存在的“東西”是文件還是目錄)。

底線是,如果您正在檢查某個文件是否存在,您可能會這樣做,因為您打算根據(jù)結(jié)果采取一些操作,并且這種邏輯(檢查和/或后續(xù)操作)應(yīng)該適應(yīng)這樣的想法,即在該路徑上找到的東西可能是文件或目錄,并且在檢查過程中可能會遇到EPERM或其他錯誤。


查看完整回答
反對 回復(fù) 2019-07-13
  • 3 回答
  • 0 關(guān)注
  • 2837 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號