Forwarded from Node.JS [ru] | Серверный JavaScript
Создайте приложение на Node.js, которое принимает путь к папке в качестве аргумента командной строки и создает файл
report.json, содержащий статистику по этой папке: количество файлов, количество папок, и общий размер всех файлов.Программа должна уметь выводить статистику по папке в консоль и сохранять её в файл.
•
node app.js report /path/to/folder — создает файл report.json с данными о содержимом папки.•
node app.js print /path/to/folder — выводит статистику о папке в консоль.Решение задачи
const fs = require('fs');
const path = require('path');
const { promisify } = require('util');
const readdir = promisify(fs.readdir);
const stat = promisify(fs.stat);
const action = process.argv[2];
const folderPath = process.argv[3];
const reportFile = 'report.json';
if (!action || !folderPath) {
console.log('Используйте: node app.js <report|print> <путь к папке>');
process.exit(1);
}
async function analyzeFolder(folder) {
const entries = await readdir(folder, { withFileTypes: true });
let totalSize = 0;
let fileCount = 0;
let folderCount = 0;
for (const entry of entries) {
const fullPath = path.join(folder,entry.name );
if (entry.isDirectory()) {
folderCount++;
const { totalSize: folderSize, fileCount: folderFiles, folderCount: subFolderCount } = await analyzeFolder(fullPath);
totalSize += folderSize;
fileCount += folderFiles;
folderCount += subFolderCount;
} else if (entry.isFile()) {
const fileStats = await stat(fullPath);
fileCount++;
totalSize += fileStats.size;
}
}
return { totalSize, fileCount, folderCount };
}
async function generateReport(folder) {
const stats = await analyzeFolder(folder);
const reportData = {
folder: folder,
files: stats.fileCount,
folders: stats.folderCount,
totalSize: stats.totalSize,
};
fs.writeFile(reportFile, JSON.stringify(reportData, null, 2), (err) => {
if (err) {
console.error('Ошибка при записи отчета:', err);
process.exit(1);
}
console.log(`Отчет сохранен в ${reportFile}`);
});
}
async function printReport(folder) {
const stats = await analyzeFolder(folder);
console.log(`Папка: ${folder}`);
console.log(`Количество файлов: ${stats.fileCount}`);
console.log(`Количество папок: ${stats.folderCount}`);
console.log(`Общий размер файлов: ${stats.totalSize} байт`);
}
if (action === 'report') {
generateReport(folderPath);
} else if (action === 'print') {
printReport(folderPath);
} else {
console.log('Неизвестное действие. Используйте "report" или "print".');
}
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Denis Sexy IT 🤖
This media is not supported in your browser
VIEW IN TELEGRAM
Новый Gemini 2.5 позволяет получить все вопросы от вселенной в виде веб-симуляции, вот, например, с первого раза симулятор 1 горилла vs 100 людей
¯\_(ツ)_/¯
Автор
¯\_(ツ)_/¯
Автор
Forwarded from ai.dot(ufna, dev)
Посмотрел. Трейлеры новой GTA мне не нравятся. (конечно же, все меня спрашивают и срочно нужно мое мнение! (нет))
Но мне вообще не нравятся GTA после вайс сити. Первую я играл мало, во вторую - нарублено немало часов, третья - отвал башки, вайс сити - любимая часть.
А дальше я сам стал делать игры.
P.S. - а вот если оторваться от вкусовщины, то я вижу просто немеряную тонну объема конентента и постановки, но достаточно устаревший на сегодня графоний.
Но мне вообще не нравятся GTA после вайс сити. Первую я играл мало, во вторую - нарублено немало часов, третья - отвал башки, вайс сити - любимая часть.
А дальше я сам стал делать игры.
P.S. - а вот если оторваться от вкусовщины, то я вижу просто немеряную тонну объема конентента и постановки, но достаточно устаревший на сегодня графоний.
Forwarded from MAX agency / Илья Лайтнер
This media is not supported in your browser
VIEW IN TELEGRAM
Сняли видео, в котором рассказываем детали про инвестиции и инвесторов, планы развития студии, шаги/действия на эти 1-2 месяца. Сейчас монтируем и завтра закидываем :)
А еще, расскажу уже тут — 25 июня устроим большую тусовку и большую презентацию новой концепции студии (забегая вперед, конечно, у нас дизайн и разработка останется и только усилится, но вот что и как будет еще — пока не расскажу):)
А еще, расскажу уже тут — 25 июня устроим большую тусовку и большую презентацию новой концепции студии (забегая вперед, конечно, у нас дизайн и разработка останется и только усилится, но вот что и как будет еще — пока не расскажу):)
Forwarded from Дизайн-снайпер
Минутка нашего:
Давно нравится проект, но не помню публиковал или нет. Такая привычная работа с визуальной традицией, с намеренной грубой работой формы, что хорошо и для учебного проекта и для зрелой, самостоятельной работы с визуальной традицией города с историей.
Дизайнер: Валерия Короткова
Давно нравится проект, но не помню публиковал или нет. Такая привычная работа с визуальной традицией, с намеренной грубой работой формы, что хорошо и для учебного проекта и для зрелой, самостоятельной работы с визуальной традицией города с историей.
Дизайнер: Валерия Короткова