fs:如何找到父文件夹?

2020/10/18 02:01 · javascript ·  · 0评论

如何编写此代码以备份父级2个级别以查找文件?

fs.readFile(__dirname + 'foo.bar');

尝试这个:

fs.readFile(__dirname + '/../../foo.bar');

注意相对路径开始处的正斜杠。

使用path.join http://nodejs.org/docs/v0.4.10/api/path.html#path.join

var path = require("path"),
    fs = require("fs");

fs.readFile(path.join(__dirname, '..', '..', 'foo.bar'));

path.join() 将为您处理前导/尾随的斜杠,并且做正确的事情,并且您不必尝试记住何时存在或不存在尾随的斜杠。

我知道这有点挑剔,但到目前为止,所有答案都不太正确。

path.join()的目的是消除调用者知道使用哪个目录分隔符的需要(使代码平台不可知)。

从技术上讲,正确的答案应该是:

var path = require("path");

fs.readFile(path.join(__dirname, '..', '..', 'foo.bar'));

我本来可以将此评论添加到Alex Wayne的答案中,但代表还不够!

编辑:根据user1767586的观察

最简单的方法是使用path.resolve

path.resolve(__dirname, '..', '..');

看起来您将需要该path模块。path.normalize特别是)

var path = require("path"),
    fs = require("fs");

fs.readFile(path.normalize(__dirname + "/../../foo.bar"));

如果另一个模块调用您的模块,而您仍想知道正在运行的主文件的位置,则可以使用@Jason代码的修改:

var path = require('path'),
    __parentDir = path.dirname(process.mainModule.filename);

fs.readFile(__parentDir + '/foo.bar');

这样,您将获得实际正在运行的脚本的位置。

如果您对父母的身份不满意,这将为您提供帮助。

var path = require('path'),
    __parentDir = path.dirname(module.parent.filename);

fs.readFile(__parentDir + '/foo.bar');

您可以使用

path.join(__dirname, '../..');

我正在运行电子应用程序,我可以通过path.resolve()获取父文件夹

父级1级:path.resolve(__dirname, '..') + '/'

父级2级:path.resolve(__dirname, '..', '..') + '/'

这也将起作用:

fs.readFile(`${__dirname}/../../foo.bar`);

这很好

path.join(__dirname + '/../client/index.html')
const path = require('path')
const fs = require('fs')
    fs.readFile(path.join(__dirname + '/../client/index.html'))
本文地址:http://javascript.askforanswer.com/fsruhezhaodaofuwenjianjia.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!