2012-06-08 100 views

回答

2

看看http://nodejs.org/api/fs.html#fs_class_fs_stats

看看ctimemtime找到創建和修改的時間。

事情是這樣的:(。)

var fs = require('fs'); 

fs.readdir(".",function(err, list){ 
    list.forEach(function(file){ 
     console.log(file); 
     stats = fs.statSync(file); 
     console.log(stats.mtime); 
     console.log(stats.ctime); 
    }) 
}) 

循環當前目錄和記錄文件名,抓住文件統計並記錄修改的時間(修改時間)和建立時間(的ctime)

+0

非常感謝,謝謝。 – jmoon

+0

如果我有700個文件,我的情況就是這樣。 –

2

在布拉德的片段作品(並且是真棒,謝謝),以及當文件在同一目錄中,但如果你正在檢查其他文件夾,你需要解決的路徑爲statSync PARAM:

const fs = require('fs'); 
const {resolve, join} = require('path'); 

fs.readdir(resolve('folder/inside'),function(err, list){ 
    list.forEach(function(file){ 
     console.log(file); 
     stats = fs.statSync(resolve(join('folder/inside', file))); 
     console.log(stats.mtime); 
     console.log(stats.ctime); 
    }) 
}) 
0

假設您想要獲取目錄中最新的文件並將其發送給想要獲取文件夾中不存在的文件的客戶端。例如,如果您的靜態中間件無法提供文件並自動調用next()函數。

您可以使用glob模塊獲取您想要搜索的文件列表,然後在函數中將其縮小;

// handle non-existent files in a fallthrough middleware 
app.use('/path_to_folder/', function (req, res) { 
    // search for the latest png image in the folder and send to the client 
    glob("./www/path_to_folder/*.png", function(err, files) { 
     if (!err) { 

      let recentFile = files.reduce((last, current) => { 

       let currentFileDate = new Date(fs.statSync(current).mtime); 
       let lastFileDate = new Date(fs.statSync(last).mtime); 

       return (currentFileDate.getTime() > lastFileDate.getTime()) ? current: last; 
      }); 

      res.set("Content-Type", "image/png"); 
      res.set("Transfer-Encoding", "chunked"); 
      res.sendFile(path.join(__dirname, recentFile)); 
     } 
    }); 
相關問題