Nodejs 创建目录并写入文件

经常有遇到这种场景,向某一个路径下写入一个文件,路径不存在则创建路径并创建文件,文件存在则覆盖。就是想用一个接口就可以把数据写到某路径的文件内,而不care 路径 文件 存不存的问题。

在其他语言比较容易实现。而在node中,就有点麻烦了,因为writeAPI成功的条件是路径必须存在,而路径在node老版本的情况下又要一层层往下创建。在node 10之后有递归创建路径了。这里就是基于该特性写了一个函数 方便以后用的时候找。

测试环境:ubuntu
node版本:v10.14.1

const fs = require('fs');

const writeFileRecursive = function(path, buffer, callback){
    let lastPath = path.substring(0, path.lastIndexOf("/"));
    fs.mkdir(lastPath, {recursive: true}, (err) => {
        if (err) return callback(err);
        fs.writeFile(path, buffer, function(err){
            if (err) return callback(err);
            return callback(null);
        });
    });
}

const buffer = "test hahahhhhh";
writeFileRecursive('./public/test/file1', buffer, (err)=>{
    if(err) console.error(err);
    console.info("write success");
});

测试代码效果为 会在当前目录下创建public/test/ 目录 并创建file1 文件 并写入buffer中的内容

### 回答1: 可以使用 Node.js 的 `fs` 模块来创建一个 bat 文件,然后可以使用 Node.js 的 `child_process` 模块来运行这个 bat 文件。 例如,下面的代码会在当前目录下创建一个名为 "test.bat" 的 bat 文件,并在文件中写入一条命令,然后运行这个 bat 文件: ``` const fs = require('fs'); const child_process = require('child_process'); fs.writeFileSync('test.bat', 'echo Hello World'); child_process.execSync('test.bat'); ``` 要为 bat 文件赋予图标,可以使用工具来创建一个带有图标的可执行文件,然后在 bat 文件中调用这个可执行文件。例如,可以使用 Resource Hacker 来创建带有图标的可执行文件,然后在 bat 文件中调用这个可执行文件: ``` fs.writeFileSync('test.bat', 'start /b myapp.exe'); ``` 另外,也可以使用第三方库来创建带有图标的 bat 文件,例如: - [bat-cave](https://www.npmjs.com/package/bat-cave) - [bat-file-creator](https://www.npmjs.com/package/bat-file-creator) 希望这些信息能帮到你。 ### 回答2: 要给node.js创建bat文件并赋予图标,可以按照以下步骤进行: 1. 首先,在node.js中创建一个js文件,用于生成bat文件。例如,创建一个名为“create_bat.js”的文件。 2. 在“create_bat.js”文件中,使用Node.js的“fs”模块来创建bat文件并写入相应的内容。例如,可以使用以下代码创建一个名为“test.bat”的bat文件,并在其中写入一些命令行代码: ``` const fs = require('fs'); // 创建bat文件 fs.writeFileSync('test.bat', '@echo off\n echo "Hello, World!"\n pause'); ``` 以上代码将创建一个名为“test.bat”的文件,并在其中写入一些命令行代码,该bat文件将在执行时输出“Hello, World!”并暂停。 3. 接下来,使用Node.js的“child_process”模块来执行bat文件。例如,可以在“create_bat.js”文件的末尾添加以下代码,在命令行中执行生成的bat文件: ``` const { exec } = require('child_process'); // 执行bat文件 exec('test.bat', (error, stdout, stderr) => { if (error) { console.error('执行bat文件时发生错误:', error); return; } console.log('bat文件执行成功:', stdout); }); ``` 以上代码将执行生成的bat文件,并将结果输出到控制台。 4. 最后,在Windows资源管理器中,找到生成的bat文件,并右键单击该文件。选择“属性”,然后在“属性”对话框中选择“换图标”。选择一个图标,然后点击“确定”保存更改。 这样,你就成功创建一个bat文件,并为其指定了一个具有图标的外观。 ### 回答3: 要给创建的bat文件赋予图标,可以按照以下步骤来实现: 1. 在Node.js中使用`fs`模块创建一个bat文件。可以使用`fs.writeFile`方法来创建写入bat文件的内容。例如: ```javascript const fs = require('fs'); const batCode = `@echo off echo Hello World! pause`; fs.writeFile('test.bat', batCode, (err) => { if (err) throw err; console.log('bat文件已创建'); }); ``` 上述代码使用`fs.writeFile`方法创建一个名为`test.bat`的bat文件,并写入了一些简单的命令行代码。 2. 在bat文件所在的文件夹中,创建一个ico文件,并将其作为bat文件的图标。通常,ico文件用于图标文件。你可以使用任何图片编辑工具或在线工具将图片转换为ico文件,确保其大小不超过256x256像素。将所创建的ico文件放置于同一文件夹内。命名为`test.ico`。 3. 使用`shortcut`模块来创建bat文件的快捷方式,并为该快捷方式设置图标。首先,需要使用npm安装`shortcut`模块: ```shell npm install --save shortcut ``` 然后,可以使用以下代码为bat文件创建快捷方式,并设置图标: ```javascript const shortcut = require('shortcut'); const target = 'test.bat'; const shortcutPath = 'test.lnk'; const iconPath = 'test.ico'; shortcut.create(shortcutPath, target, '', iconPath, (err) => { if (err) throw err; console.log('快捷方式已创建并设置图标'); }); ``` 上述代码使用`shortcut.create`方法创建一个名为`test.lnk`的快捷方式,将其目标设置为`test.bat`,并为该快捷方式设置图标为`test.ico`。 通过以上步骤,我们可以使用Node.js创建bat文件,并为其设置图标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值