文件系统
Node.js 文件系统
$ npm install --save walk-sync
const walkSync = require("walk-sync");
const paths = walkSync("project");
// 输出结果
// ['one.txt', 'subdir/', 'subdir/two.txt']
文件寻址
__dirname
__filename
process.cwd()
./
../
,前三个都是绝对路径,为了便于比较,./
和 ../
我们通过 path.resolve('./')
来转换为绝对路径。
__dirname
: 总是返回被执行的js 所在文件夹的绝对路径__filename
: 总是返回被执行的js 的绝对路径process.cwd()
: 总是返回运行node 命令时所在的文件夹的绝对路径
app/
-lib/
-common.js
-model
-task.js
-test.js
在
var path = require("path");
console.log(__dirname);
console.log(__filename);
console.log(process.cwd());
console.log(path.resolve("./"));
在 model
目录下运行 node task.js
得到的输出是:
/Users/guo/Sites/learn/app/model
/Users/guo/Sites/learn/app/model/task.js
/Users/guo/Sites/learn/app/model
/Users/guo/Sites/learn/app/model
然后在 app
目录下运行 node model/task.js
,得到的输出是:
/Users/guo/Sites/learn/app/model
/Users/guo/Sites/learn/app/model/task.js
/Users/guo/Sites/learn/app
/Users/guo/Sites/learn/app
只有在
// 当前目录下
path.dirname(__filename) + "/test.js";
// 相邻目录下
path.resolve(__dirname, "../lib/common.js");
fs.readFile(path.resolve(__dirname, "settings.json"), "UTF-8", callback);
path.sep
表示了平台相关的路径分隔符,即'\\'
'/'
;在类'foo/bar/baz'.split(path.sep)// returns ['foo', 'bar', 'baz']
而在