我想创建一个简单的控制台应用程序,它将根据文件名比较两个文件并将结果输出到一个新文件中。FS不会创建文件
我的问题是,NodeJS拒绝创建一个新文件,如果它不存在,即使我手动创建它也不存在。
compare = (data) -> # data is being read from process.stdin
fname = "#{data}_compare.txt"
stdout.write "Attempting to compare #{data}" # stdout = process.stdout
fs.writeFileSync fname, 'A test.'
中的NodeJS两种情况下返回Error: ENOENT, no such file or directory
(当我想它创建的文件,以及当该文件已经存在了)。
我想要在运行应用程序的同一文件夹中创建文件,因此路径不应该是问题(并且确实在错误消息中是正确的)。
我也试图指定{flags: 'w'}
,但据我所知,这是默认值,所以它改变了注意。
我在Windows 10上运行,尝试在管理员下运行命令提示符,仍然没有。任何想法可能会造成这种情况?
只是一个猜测,但它在我看来,数据,如果从标准输入读取,可能包含换行符。你可以输出'fname'并检查? –
@asaddude它似乎它。现在我明白这可能会导致一个问题。 – ROAL
@asaddude你应该发布这个答案。我尝试使用'data.substring(0,data.length - 2)'从data数据中移除最后两个字符('\ n'),现在正在正确创建文件。这完全没有让我想起。 – ROAL