文件操作 - index.js
返回文件管理
返回主菜单
删除本文件
文件: /usr/share/nodejs/locate-path/index.js
编辑文件内容
import process from 'node:process'; import path from 'node:path'; import fs, {promises as fsPromises} from 'node:fs'; import {fileURLToPath} from 'node:url'; import pLocate from 'p-locate'; const typeMappings = { directory: 'isDirectory', file: 'isFile', }; function checkType(type) { if (Object.hasOwnProperty.call(typeMappings, type)) { return; } throw new Error(`Invalid type specified: ${type}`); } const matchType = (type, stat) => stat[typeMappings[type]](); const toPath = urlOrPath => urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath; export async function locatePath( paths, { cwd = process.cwd(), type = 'file', allowSymlinks = true, concurrency, preserveOrder, } = {}, ) { checkType(type); cwd = toPath(cwd); const statFunction = allowSymlinks ? fsPromises.stat : fsPromises.lstat; return pLocate(paths, async path_ => { try { const stat = await statFunction(path.resolve(cwd, path_)); return matchType(type, stat); } catch { return false; } }, {concurrency, preserveOrder}); } export function locatePathSync( paths, { cwd = process.cwd(), type = 'file', allowSymlinks = true, } = {}, ) { checkType(type); cwd = toPath(cwd); const statFunction = allowSymlinks ? fs.statSync : fs.lstatSync; for (const path_ of paths) { try { const stat = statFunction(path.resolve(cwd, path_)); if (matchType(type, stat)) { return path_; } } catch {} } }
修改文件时间
将文件时间修改为当前时间的前一年
删除文件