0

我希望它可以跨操作系统移植

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

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

此代码可能仅适用于 Mac/Linux/Unix;

编写此代码的通用方式是什么?

4

2 回答 2

0

正确和最简单的方法是:

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

但是如果你真的想手动编写分隔符,你可以这样做:

path.join(__dirname, '..' + path.sep + '..', 'foo.bar');
于 2013-08-09T07:41:28.183 回答
0

通过询问节点将其依赖于操作系统。但我认为还有一些不同之处,例如 Volumes (C:\),它们是基本不同的 un nix 系统。

例如

var sSlash = (process.platform.match(/^win/))?'\\':'/';
var path = require("path"),
fs = require("fs");

fs.readFile(path.join(__dirname, '..'+sSlash+'..', 'foo.bar'));
于 2013-08-08T23:58:27.353 回答