检查文件内容的变化
Checking for changes in file content
我正在编写一个脚本来检查目录中的 JSON 个文件,并使用包含在这些文件中找到的数据的文档更新 MongoDB 集合。
我想检查文件自上次用于更新文档后是否发生过更改。
目前,我正在使用此代码检查 JSON files/read 它们的内容:
import fs from 'fs'
fs.readdir(`../Items`, (err, files) => {
if (err) console.error(err)
files = files.filter((file) => file.split('.').pop() === 'json')
if (files.length <= 0) return console.error('No items to process!')
files.forEach((file, i) => {
fs.readFile(`../Items/${file}`, (err, data) => {
if (err) return console.error(err)
console.log(data)
})
})
})
我认为找出文件的最后修改日期及其 MD5 哈希值是可行的方法,但我不确定如何使用 fs 获取这些信息。
您可以使用 stat 函数的 mtime 属性来执行此操作。
在 attacomsian
查看更多信息
const fs = require('fs');
// fetch file details
fs.stat('file.txt', (err, stats) => {
if(err) {
throw err;
}
// print file last modified date
console.log(`File Data Last Modified: ${stats.mtime}`);
console.log(`File Status Last Modified: ${stats.ctime}`);
});
我建议使用哈希检查文件内容是否被更改。每当文件内容发生变化时,哈希值也会发生变化,这要可靠得多。这段代码可以帮助你。希望对你有帮助。
const crypto = require('crypto')
const fs = require('fs')
const fileContent = fs.readFileSync('./uploadedFile.json', { encoding: 'utf-8' })
const fileUploadedHash = crypto.createHash('md5').update(fileContent).digest('base64');
if(fileUploadedHash !== existingFileHash) {
// update data in MongoDB
}
我正在编写一个脚本来检查目录中的 JSON 个文件,并使用包含在这些文件中找到的数据的文档更新 MongoDB 集合。
我想检查文件自上次用于更新文档后是否发生过更改。
目前,我正在使用此代码检查 JSON files/read 它们的内容:
import fs from 'fs'
fs.readdir(`../Items`, (err, files) => {
if (err) console.error(err)
files = files.filter((file) => file.split('.').pop() === 'json')
if (files.length <= 0) return console.error('No items to process!')
files.forEach((file, i) => {
fs.readFile(`../Items/${file}`, (err, data) => {
if (err) return console.error(err)
console.log(data)
})
})
})
我认为找出文件的最后修改日期及其 MD5 哈希值是可行的方法,但我不确定如何使用 fs 获取这些信息。
您可以使用 stat 函数的 mtime 属性来执行此操作。 在 attacomsian
查看更多信息const fs = require('fs');
// fetch file details
fs.stat('file.txt', (err, stats) => {
if(err) {
throw err;
}
// print file last modified date
console.log(`File Data Last Modified: ${stats.mtime}`);
console.log(`File Status Last Modified: ${stats.ctime}`);
});
我建议使用哈希检查文件内容是否被更改。每当文件内容发生变化时,哈希值也会发生变化,这要可靠得多。这段代码可以帮助你。希望对你有帮助。
const crypto = require('crypto')
const fs = require('fs')
const fileContent = fs.readFileSync('./uploadedFile.json', { encoding: 'utf-8' })
const fileUploadedHash = crypto.createHash('md5').update(fileContent).digest('base64');
if(fileUploadedHash !== existingFileHash) {
// update data in MongoDB
}