想知道Nodejs中雷士 windows 如何在新建文件夹时防止文件夹命名重复的逻辑

发布于 1周前 作者 bupafengyu 来自 nodejs/Nestjs

想知道Nodejs中雷士 windows 如何在新建文件夹时防止文件夹命名重复的逻辑

新加的文件夹自动追加了尾缀(1) 在网盘列表查询的时候怎么查改目录下所有重复的文件夹 删掉其中一个(3)之后也能最新文件夹名称不重复

说的比较乱 就是一个比较合理的防重复查询

2 回复

确实说的很乱。


在Node.js中,为了防止在新建文件夹时出现命名重复的情况,可以采取以下逻辑:

  1. 检查文件夹是否存在:在尝试创建文件夹之前,先检查目标路径是否已经存在同名文件夹。

  2. 处理冲突:如果文件夹已存在,可以附加一个后缀(如时间戳、UUID等)来生成新的唯一名称。

以下是一个示例代码,展示了如何实现上述逻辑:

const fs = require('fs').promises;
const path = require('path');
const crypto = require('crypto');

async function createUniqueFolder(basePath, folderName) {
    let dirPath = path.join(basePath, folderName);
    let counter = 1;

    while (true) {
        try {
            await fs.access(dirPath); // 检查文件夹是否存在
            // 如果存在,生成新的名称
            dirPath = path.join(basePath, `${folderName}_${counter}`);
            counter++;
        } catch (err) {
            if (err.code === 'ENOENT') { // 文件夹不存在,可以创建
                break;
            } else {
                throw err; // 其他错误,抛出异常
            }
        }
    }

    // 创建文件夹
    await fs.mkdir(dirPath);
    console.log(`Folder created: ${dirPath}`);
}

// 示例调用
createUniqueFolder(__dirname, 'testFolder').catch(console.error);

这段代码首先尝试创建指定名称的文件夹,如果文件夹已存在,则在名称后添加一个递增的数字,直到找到一个不存在的名称,然后创建该文件夹。这样可以有效防止文件夹命名重复。

回到顶部