MST

星途 面试题库

面试题:Node.js 文件系统元数据批量更新

假设有一个目录,里面包含大量文件和子目录。现在要求你批量修改这些文件的访问时间(atime)为当前时间。请使用Node.js文件系统模块编写实现代码,并考虑如何处理异步操作以及可能出现的错误。
36.1万 热度难度
前端开发Node.js

知识考点

AI 面试

面试题答案

一键面试
const fs = require('fs');
const path = require('path');
const { promisify } = require('util');

async function updateAccessTime(dir) {
    try {
        const items = await promisify(fs.readdir)(dir);
        for (const item of items) {
            const itemPath = path.join(dir, item);
            const stats = await promisify(fs.stat)(itemPath);
            if (stats.isDirectory()) {
                await updateAccessTime(itemPath);
            } else {
                const now = new Date();
                await promisify(fs.utimes)(itemPath, now, now);
            }
        }
    } catch (err) {
        console.error('Error updating access time:', err);
    }
}

// 使用示例
const targetDir = '.'; // 替换为目标目录路径
updateAccessTime(targetDir);