我正在尝试使用ofstream
创建一个addon for Node.js(其中包括)将内容写入我的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)。
报告的错误始终为No such file or directory
- 即使我实际创建~/license.txt
。
为什么这个在一个目录中工作而不在其他目录中的任何想法?如果是权限问题,我会发出不同的错误消息。
为了记录,我已经看到大约20个关于&#34; ofstream的其他SO问题无法创建文件&#34;但将其他标志传递到open()
无效。我有一种感觉这与在Node / V8中运行有点相关。
答案 0 :(得分:1)
我认为问题在于您需要以与使用~
不同的方式查找用户目录。