簡體   English   中英

如何使用Node.js檢查目錄是否為空?

[英]How can I use Node.js to check if a directory is empty?

很久以前就問過PHP這個問題 同樣適用於Node.js,下面的代碼在循環中使用時似乎有點慢-是否有辦法在沒有插件或React.js等的純Node.js原始JavaScript中編寫此代碼?

const dirname = 'cdn-assets/'

fs.readdir(dirname, function(err, files) {
    if (err) {
       // some sort of error
    } else {
       if (!files.length) {
           // directory appears to be empty
       }
    }
});

另外,我可以寫進一步的條件來檢查:

if(directory_has_these_files('.js, .css, .jpg, .svg, .mp4'))

所以如果你這樣做

fs.readdir('/path/to/empty_dir', (data, err) => console.log(data, '.....', err)) 

您會看到結果是:

空值 '.....' []

因此,您的代碼可以簡化為

fs.readdir(dirname, (err, files)  => {
if (err && !files) {
    console.error(err)
}

console.info('the files --> ', files)

let regexp = RegExp('.jpeg|.doc|.png|.zip', 'gi')

for(result in files) {
    if(regexp.test(files[result])) {
        console.log('I have the following', files[result])
    }
}});

然而....

我們想要這種快速,現代化和高效的服務,不是嗎?

因此,這甚至更好:

fs.readdir(dirname, (err, files)  => {
    if (err && !files) {
        console.error(err)
    }

    let regexp = RegExp('.jpeg|.doc|.png|.zip', 'gi');

    files.filter(
        file => file.match(regexp)
    ).map(
        result => console.log('I have the following',result)
    );

});

在目錄上使用地圖的優點之一是,您可以保證訂單的保存,而且看起來也更干凈。

Map是內置的可迭代的— Object不是,這並不是說Map是Object的替代品,兩者都有用例。 那是另一個故事。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM