我正在尝试创建一个 addon for Node.js (除其他外)使用 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
),则效果很好。
但是,如果该文件位于其他位置,则 ofstream
无法打开/创建有问题的文件。例如,使用 ~/license.txt
不起作用(注意:我运行的是 OSX)。
报告的错误始终是没有这样的文件或目录
——即使在我物理创建~/license.txt
之后也是如此。
有什么想法为什么这在一个目录中有效但在其他目录中无效吗?如果是权限问题,我会收到不同的错误消息。
郑重声明,我已经看到了大约 20 个其他关于“ofstream 无法创建文件”的问题,但将附加标志传递给 open()
没有效果。我有一种感觉,这与在 Node/V8 中运行有某种关系。
最佳答案
我认为问题在于您需要以与使用 ~
不同的方式查找用户目录。
关于c++ - ofstream 不创建文件(Node.js 插件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30358836/