簡體   English   中英

NodeJS - 返回目錄中的最后一個目錄並在其旁邊創建一個新目錄

[英]NodeJS - Return the last directory within a directory and create a new one next to it

假設我們有一個像這樣的文件夾路徑......

C:\path\to\MyFolder

在這個文件夾中,包含許多這樣的子目錄......

<MyFolder>
|- folder1
|- folder2
|- folder3
|- folder4
|- folder5

如何返回最后一個子文件夾並按照文件夾的編號模式在其旁邊創建一個新子文件夾?

所以說這樣的話...

<MyFolder>
|- folder1
|- folder2
|- folder3
|- folder4
|- folder5 // <-- last subdirectory
|- folder6 // <-- new directory created following the number pattern

或這個...

<MyFolder>
|- folder1
|- folder2
|- folder3
|- folder4
|- folder5
|- folder6 // <-- last subdirectory
|- folder7 // <-- new directory created following the number pattern

我已經嘗試過這個問題的解決方案,但不幸的是它是用 ESM 編寫的,我使用 CJS,而 ESM 到 CJS 的轉換器在這種情況下似乎無法解決問題。

有人可以幫忙嗎? 希望每個人都明白我要做什么。

如果模式總是固定的(即folderN , N 表示為數字),那么您可以獲得所有目錄,然后轉換它們中的每一個並創建一個數字數組。 通過這個數組,您可以找到最大數字並預測下一個候選數字。

這個 function 可以讓你了解發生了什么:

const { readdir, mkdir } = require('fs/promises');

const createDirectory = async source => {
  const foldersNumber = (await readdir(source, { withFileTypes: true }))
    .filter(dirent => dirent.isDirectory())
    .map(dirent => parseInt(dirent.name.replace('folder', '')));
  
  return mkdir(`${source}/folder${Math.max(...foldersNumber) + 1}`);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM