如何使用Javascript中的文件夹中的文件名将数组写入TXT文件

时间:2018-07-01 18:12:00

标签: javascript node.js file

我正在用Node.js编写。

在in控制台中,我看到文件名,然后是许多字符串:"File written",在文件中,我看到了一个文件夹中第一个文件名的字符串

问:如何将包含Javascript文件夹中文件名的数组写入TXT文件?

这是我的代码:

 const WebmUrl = new URL('file:///D:/MY PROJCT/webm/hlp.txt');

 fs.readdirSync(testFolder).forEach(file => {
    console.log(file)
    fs.writeFile(WebmUrl, file, function(err){
       if(err) {
          console.log(err)  
       } else {
          console.log('File written!');
       }
    });
 })

2 个答案:

答案 0 :(得分:1)

使用fs.writeFile时将替换文件(如果存在)。因此,在循环中,您不断制作一个项目文件,然后在下一次迭代中替换它。

您可以使用fs.appendFileSyncfs.appendFile

例如:

const fs = require('fs')
fs.readdirSync(directory).forEach(file => {
    fs.appendFileSync(filename, file, function(err){
    })
})

您也可以只创建一个文件名数组,将它们连接成一个字符串,然后一次写入所有文件。

const fs = require('fs')
let str = fs.readdirSync(directory).join('\n')

fs.writeFile(filename, str, function(err){
    if(err) {
    console.log(err)  
    } else {
    console.log('File written!');
    }
});

答案 1 :(得分:0)

或者您可以添加附加标志{flag: 'as'},请参见https://nodejs.org/api/fs.html#fs_file_system_flags

fs.readdirSync('../checkouts').forEach(file => {
    console.log(file)
    fs.writeFile('./test.txt', `${file}\n` , {flag: 'as'}, function (err) {
        if (err) { console.log(err) }
        else { console.log('File written!'); }
    });
})