Как переименовать папки, содержащие файлы в node.js?

#javascript #reactjs #fs

Вопрос:

Следующий метод отлично работает при переименовании одной папки, не содержащей файлов. Это не работает при переименовании папки, содержащей один или несколько файлов.

 const handleRenameFile = () => {
    const oldPath = `./${directory}/${fileName}`;
    const newPath = `./${directory}/${name}`;
      fs.renameSync(oldPath, newPath, (err) => {
        if (err) {
          throw err;
        }
      });
  };
 

EPERM: операция не разрешена, переименуйте «./Старый путь» ->». /Новый путь»

Таким образом, я открыт для любого альтернативного решения, которое может достичь поставленной цели.

Ответ №1:

Пожалуйста, ознакомьтесь с документацией.

https://nodejs.org/api/fs.html#fs_fs_renamesync_oldpath_newpath

Более подробную информацию см. в документации по переименованию POSIX(2).

https://man7.org/linux/man-pages/man2/rename.2.html

oldpath может указать каталог. В этом случае newpath должен либо не существовать, либо указывать пустой каталог.