const path = require('path');
//basename [Fun] 返回文件名称 会根据平台返回不同值
path.basename('C:\\temp\\myfile.html')
//Linux 返回: 'C:\\temp\\myfile.html'
//POSIX 返回: 'myfile.html'
//win32.basename [Fun] 返回文件名称
path.win32.basename('C:\\temp\\myfile.html');
// 双平台上都返回windiws解析结果
//basename [Fun] 返回文件名称
path.posix.basename('C:\\temp\\myfile.html');
// 双平台上都返回posix解析结果
//dirname [Fun] 方法返回一个 path 的目录名
path.dirname('/foo/bar/div/path/d.mp3');
//返回 foo/bar/div/path/
//extname [Fun] 方法path的拓展名 非字符串则抛出TypeError
path.extname('name/s.mp3');
//format [Fun] 方法会从一个对象返回一个路径字符串。
//dir <string> root <string> base <string> name <string> ext <string>
//(1) 如果提供了 pathObject.dir,则 pathObject.root 会被忽略
//(2) 如果提供了 pathObject.base 存在,则 pathObject.ext 和 pathObject.name 会被忽略
path.format({root: '/',name:'file',ext:'.txt'});
//isAbsolute [Fun] 方法会判定path是否为一个绝对路径
path.isAbsolute('/foo/bar');
//join 方法使用平台特定的分隔符把全部给定的 path 片段连接到一起,并规范化生成的路径
path.join('/foo', '/bar', 'baz/asdf', 'quux', '..');
// \foo\bar\baz\asdf
//normalize [Fun] 方法会规范化给定的 path,并解析 '..' 和 '.' 片段
path.normalize('C:\\temp\\\\foo\\bar\\..\\') //?
//c:\temp\fool\
//win32.normalize [Fun] 尽管Windows会识别多种文件路径分隔符,但是两种分隔符在Window上会被(\)分隔符取代
path.win32.normalize('C:////temp\\\\/\\/\\/foo/bar') //?
//c:\temp\foo\bar
//parse [Fun] 方法返回一个对象,对象的属性表示 path 的元素。 尾部文件分隔符会被忽略,
path.parse('/home/user/dir/file.txt'); //?
//返回: { root: '/', dir: '/home/user/dir',base:'file.txt',ext: '.txt',name: 'file' }
//relative(from, to) [Fun] 方法返回从 from 到 to 的相对路径(基于当前工作目录), 如果 from 和 to 各自解析到同一路径(调用 path.resolve()),则返回一个长度为零的字符串
path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb');
//返回 windows ..\..\impl\bbb
//返回 POSIX ../../impl/bbb
//resolve [Fun] 方法会把一个路径或路径片段的序列解析为一个绝对路径 ,如果无参数返回当前工作目录绝对路径
path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif');
//返回 c:\Users\张智博\Desktop\nodeDemo\wwwroot\static_files\gif\image.gif
//sep [Constant] 提供了平台特定的路径片段分隔符:
//Windows 上是 \
//POSIX 上是 /
'foo/bar/baz'.split(path.sep);
// 返回: ['foo', 'bar', 'baz']
//delimiter [Constant] 提供平台特定的路径分隔符: Windows 上是 ; POSIX 上是 :
path.delimiter
//win32 属性提供了 path 方法针对 Windows 的实现。
path.win32
//posix [Fun ] 属性提供了 path 方法针对 POSIX 的实现。
path.posix