Новости программирования

Прочитайте и переименуйте все файлы в каталоге с помощью Nodejs

Краткое описание по статье Прочитайте и переименуйте все файлы в каталоге с помощью Nodejs

Название: Прочитайте и переименуйте все файлы в каталоге с помощью Nodejs . Краткое описание: [ad_1] ⭐ Здравствуйте, в этом посте мы будем массово п . Дата публикации: 03.02.2022 . Автор: Алишер Валеев .

Для чего создан сайт Novosti-Nedeli.ru

Данный сайт посвящен новостям мира и мира технологий . Также тут вы найдете руководства по различным девайсам.

Сколько лет сайту?

Возраст составляет 3 года

[ad_1]

Здравствуйте, в этом посте мы будем массово переименовывать все файлы внутри каталога, используя fs модуль rename метод
Это продолжение, возможно, длинной серии сообщений о node.js. fs и path модуль.
Чтобы получить максимальную отдачу от этого поста, рекомендуется следовать предыдущему посту.

Ожидания

Этот пост предполагает базовые знания JavaScript и Node.js.

Для начала мы продолжим использовать ту же структуру папок из предыдущего поста, которая была сгенерирована с использованием простого шаблона create-react-app.

Структура файла

В нашем index.jsнам нужно импортировать fs и path модуль, затем мы определяем путь к нашей папке с ресурсами, я назову ее folderPath.

const fs = require("fs");
const path = require("path");

const folderPath = "./assets";

Теперь, когда мы определили путь к нашей папке с ресурсами, давайте перейдем к самой интересной части.
Затем мы читаем из папки с ресурсами, используя readdirSync метод, описанный в предыдущем посте. Этот метод возвращает строковый массив файлов в каталоге

// read all files in the directory 
// and save filename to filesArr

let filesArr = fs.readdirSync(folderPath);

Поскольку readdirSync метод возвращает массив, я уверен, вы уже догадались, что нам понадобится какой-то цикл для доступа к каждому элементу в массиве. Итак, давайте сделаем это, мы будем использовать foreach чтобы перебрать массив, получить каждый файл и добавить индекс этого файла к его имени файла.

// Loop through array and rename all files

filesArr.forEach((file, index) => { 

});

Далее мы заново создадим полный путь к каждому файлу внутри цикла foreach, получим расширение файла и имя файла без расширения с помощью функции join, extname, basename метод из модуля пути.

...
  let fullPath = path.join(folderPath, file);
  let fileExtension = path.extname(file);
  let fileName = path.basename(file, fileExtension);
...

Как только мы разделим имя файла и расширение, мы можем продолжить и создать новое имя для нашего файла.

let newFileName = fileName + index + "." + fileExtension;

После этого мы можем переименовать наш файл, используя fs.renameSync. Этот метод принимает исходное имя файла и новое имя файла в качестве аргументов.

try {
  fs.renameSync(fullPath, path.join(folderPath, newFileName));
} catch (error) {
  console.error(error)
}

Вот полная версия кода, который мы написали до сих пор:

const fs = require("fs");
const path = require("path");

const folderPath = "./assets";

// read all files in the directory
let filesArr = fs.readdirSync(folderPath);

// Loop through array and rename all files 

filesArr.forEach((file, index) => {
  let fullPath = path.join(folderPath, file);
  let fileExtension = path.extname(file);
  let fileName = path.basename(file, fileExtension);

  let newFileName = fileName + index + "." + fileExtension;
try {
  fs.renameSync(fullPath, path.join(folderPath, newFileName));
} catch (error) {
  console.error(error)
}
});

Вот и все. Теперь вы можете переименовать кучу файлов в вашем каталоге одновременно и настроить приведенный выше код так, как вам нравится.

Примечание

В приведенном выше примере предполагается, что у нас есть файлы только в каталоге ресурсов и нет подкаталогов.

Чтобы узнать больше о модулях fs и path, посетите официальную документацию по node.js.
В моих следующих сообщениях я приведу больше примеров методов модуля fs, таких как fs.stats и говорить о streams с помощью fs.createReadStream для чтения содержимого файла.

Если у вас есть предложения или исправления, не стесняйтесь обращаться к нам.

[ad_2]
Source: codementor.io/community/new

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован.

Кнопка «Наверх»