Files
tg-chat-bot/src/util/files.ts
T

45 lines
1.4 KiB
TypeScript

import {logError} from "./utils";
import fs from "node:fs";
import path from "node:path";
export function clearUpFolderFromOldFiles(folder: string, recursive = true) {
fs.readdir(folder, (err, files) => {
if (err) {
logError(err);
return;
}
const filenamesToDelete: string[] = [];
files.forEach(filename => {
const fullPath = path.join(folder, filename);
try {
const stats = fs.statSync(fullPath);
if (stats.isDirectory() && recursive) {
clearUpFolderFromOldFiles(fullPath, recursive);
} else {
const then = stats.mtime.getTime() / 1000;
const now = Date.now() / 1000;
const diff = Math.abs(now - then);
const moreThanOneDay = diff >= 60 * 60 * 24;
if (stats.isFile() && moreThanOneDay) {
filenamesToDelete.push(fullPath);
}
}
} catch (e) {
logError(e);
}
});
console.log("filenamesToDelete", filenamesToDelete);
if (filenamesToDelete.length) {
filenamesToDelete.forEach((filename) => {
fs.rm(filename, (e) => {
if (e) logError(e);
});
});
}
});
}