ofstream不创build文件(Node.js插件)

我试图为Node.js创build一个插件 (其中包括)使用ofstream将内容写入我的C ++类中的文件。

 std::ofstream license_file; std::string fileContent(*NanAsciiString(args[0])); license_file.open(PATH); //file doesn't yet exist, so create it if(!license_file) { printf("ERROR: %s (%s)\n", strerror(errno), PATH); } license_file << fileContent; license_file.close(); 

如果PATH被设置为与我的Node.js代码(例如./license.txt )相同的目录,这工作正常。

但是,如果它位于其他地方,则不能打开/创build有问题的文件。 例如,使用~/license.txt不起作用(注意:我正在运行OSX)。

报告的错误总是No such file or directory – 即使我物理创build~/license.txt

任何想法,为什么这个工程在一个目录,但不是其他人? 如果这是一个权限问题,我会期待一个不同的错误信息。

为了logging,我已经看到关于“ofstream无法创build文件”的约20个其他SO问题,但将其他标志传递到open()没有任何效果。 我有一种感觉,这是与Node / V8内部运行有关。

我认为这个问题是你需要以不同于使用~方式来查找用户目录。