我正在用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!');
}
});
})
答案 0 :(得分:1)
使用fs.writeFile
时将替换文件(如果存在)。因此,在循环中,您不断制作一个项目文件,然后在下一次迭代中替换它。
您可以使用fs.appendFileSync
或fs.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!'); }
});
})