想删除一些没有访问的文件,能不能获取到文件的最后访问时间呢
我用的是nodejs的sdk,获取的文件列表没有最后访问时间的字段
想删除一些没有访问的文件,能不能获取到文件的最后访问时间呢
我用的是nodejs的sdk,获取的文件列表没有最后访问时间的字段
在Node.js中,如果你想删除长时间未访问的文件,需要借助于第三方库来获取文件的最后访问时间,因为Node.js的sdk中不提供文件的最后访问时间。以下是一种可能的方式:
fs-extra
和 path
库:npm install fs-extra path
const fs = require('fs-extra');
const path = require('path');
const dir = '/path/to/your/directory'; // 你的目录路径
// 获取目录下所有文件和文件夹的访问时间
fs.readdir(dir, (err, files) => {
if (err) {
console.error(err);
return;
}
files.forEach(file => {
const filePath = path.join(dir, file);
fs.stat(filePath, (err, stats) => {
if (err) {
console.error(err);
return;
}
if (stats.isFile()) { // 只处理文件,不处理文件夹
if (isTooOld(stats.atime)) { // 判断文件是否太旧(长时间未访问)
fs.unlink(filePath, err => { // 删除文件
if (err) {
console.error(err);
} else {
console.log(`Deleted file: ${filePath}`);
}
});
}
}
});
});
});
// 判断文件是否太旧(长时间未访问)的函数,单位是毫秒,例如这里设置为1天未访问则删除文件
function isTooOld(atime) {
const oneDay = 24 * 60 * 60 * 1000; // 一天的毫秒数
const now = Date.now(); // 当前时间戳,单位是毫秒
return now - atime > oneDay; // 如果当前时间戳减去文件的访问时间大于一天,则认为文件太旧(长时间未访问)
}
3 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
2 回答1.5k 阅读
1 回答1.2k 阅读✓ 已解决
2 回答920 阅读✓ 已解决
4 回答591 阅读✓ 已解决