用nodejs提取文件的特征码,要求更改文件名,文件的特征码不会变动
时间: 2023-06-24 11:08:55 浏览: 47
要提取文件的特征码,可以使用 Node.js 中的 Crypto 模块来计算文件的 SHA256 哈希值。以下是一个示例代码,假设要提取的文件名为 `example.txt`:
```javascript
const fs = require('fs');
const crypto = require('crypto');
const filename = 'example.txt';
// 读取文件内容并计算哈希值
const stream = fs.createReadStream(filename);
const hash = crypto.createHash('sha256');
stream.on('data', chunk => {
hash.update(chunk);
});
stream.on('end', () => {
const hashValue = hash.digest('hex');
// 将文件名中的后缀名替换为特征码,并重命名文件
const newName = `${hashValue}.${filename.split('.').pop()}`;
fs.rename(filename, newName, err => {
if (err) {
console.error(`Failed to rename file: ${err}`);
} else {
console.log(`File renamed to ${newName}`);
}
});
});
```
该代码将读取 `example.txt` 文件的内容,并计算其 SHA256 哈希值。然后,将文件名中的后缀名替换为特征码,并使用 `fs.rename` 方法重命名文件。由于哈希值是文件内容的唯一标识,因此即使文件内容没有发生变化,特征码也不会变动。