Node.js 如何使用nodejs的fs将文件写入父文件夹?

Node.js 如何使用nodejs的fs将文件写入父文件夹?,node.js,Node.js,我想将文件写入当前脚本文件夹的父文件夹(有时是该父文件夹的子目录) 我应该如何写路径 这行吗 fs.writeFile(__dirname + '../sibling_dir/file.txt', 'test'); 我试过这个 fs.writeFile('../test.txt', 'test'); 真管用 写入(fd、缓冲区、偏移量、长度、位置、回调)# 将缓冲区写入fd指定的文件 偏移量和长度决定要写入的缓冲区部分 位置是指从文件开头开始写入此数据的偏移量。如果位置为空,则数据将写入当

我想将文件写入当前脚本文件夹的父文件夹(有时是该父文件夹的子目录)

我应该如何写路径

这行吗

fs.writeFile(__dirname + '../sibling_dir/file.txt', 'test');
我试过这个

fs.writeFile('../test.txt', 'test');
真管用

写入(fd、缓冲区、偏移量、长度、位置、回调)# 将缓冲区写入fd指定的文件

偏移量和长度决定要写入的缓冲区部分

位置是指从文件开头开始写入此数据的偏移量。如果位置为空,则数据将写入当前位置。见pwrite(2)

回调将有三个参数(err、write、buffer),其中write指定从缓冲区写入的字节数

请注意,在同一文件上多次使用fs.write而不等待回调是不安全的。对于此场景,强烈建议使用fs.createWriteStream


在Linux上,在追加模式下打开文件时,位置写入不起作用。内核忽略position参数,并总是将数据追加到文件的末尾。

是的,这应该可以正常工作。我看到的主要问题是dirname和path之间没有
/

所以你现在拥有的更像是:

fs.writeFile('/tmp/module../sibling_dir/file.txt', 'test');
试试这个:

fs.writeFile(__dirname + '/../sibling_dir/file.txt', 'test');

如果你知道路径,另一种接近它的方式。您将在
current/index.js
中执行代码,并希望将文件创建为
new/sibling\u dir/file.txt

。
├── 现在的
│   └── index.js
└── 新的
└── 兄弟姐妹
└── file.txt
因此,在我的情况下,我所做的是:

//在index.js中
常数fs=要求('fs');
fs.writeFile(uu dirname.replace('current','new/sibling_dir/')+'file.txt','test');

基本上用新目录替换路径中的当前目录。从另一个目录中的index.js执行此操作将在
新的/sibling_dir/file.txt中写入
test

还可以查看
路径(path.resolve将在这里帮助您)。取出
\u dirname
将相对于当前工作目录而不是相对于脚本文件写入文件。