ノードパス

3578 ワード

pathの一般的な方法
1.パスモジュール(path)
さまざまなパスがカプセル化されたアクションはBufferと同様で、NodeJSのパスも特殊なモジュールであり、BufferモジュールがGlobalに追加されているため、手動でインポートする必要はなく、PathモジュールがGlobalに追加されていないため、使用時に手動でインポートする必要がある
2.パスの最後の部分を取得path.basename(path[, ext])
// let res = path.basename('/a/b/c/d/index.html');
// let res = path.basename('/a/b/c/d');
// let res = path.basename('/a/b/c/d/index.html', ".html");

3.パスの取得path.dirname(path)
// let res = path.dirname('/a/b/c/d/index.html');
// let res = path.dirname('/a/b/c/d');

4.拡張子名の取得path.extname(path)
// let res = path.extname('/a/b/c/d/index.html');
// let res = path.extname('/a/b/c/d');

5.絶対パスか否かを判断するpath.isAbsolute(path)
/*
   :
      
 Linux     /        
 Windows               

 Linux                /
 Windows                \
*/
// let res = path.isAbsolute('/a/b/c/d/index.html'); // true
// let res = path.isAbsolute('./a/b/c/d/index.html'); // false
// let res = path.isAbsolute('c:\\a\\b\\c\\d\\index.html'); // true
// let res = path.isAbsolute('a\\b\\c\\d\\index.html'); // false

6.現在のOSパス区切り文字の取得path.delimiter (windows \ Linux /)
7.現在のパス環境変数区切り文字の取得path.sep (windows ; linux :)
pathその他の方法
  • 1.経路のフォーマット処理// path.parse() string->obj// path.format() obj->string
  • /*
    path.parse(path):           
    {
      root: '/',
      dir: '/a/b/c/d',
      base: 'index.html',
      ext: '.html',
      name: 'index'
    }
    path.format(pathObject):           
    * */
    /*
    // let obj = path.parse("/a/b/c/d/index.html");
    // console.log(obj);
    
    let obj = {
        root: '/',
        dir: '/a/b/c/d',
        base: 'index.html',
        ext: '.html',
        name: 'index'
    };
    let str = path.format(obj);
    console.log(str);
     */
    
  • 2.接合経路path.join([...paths])
  • /*
    path.join([...paths]):       
       :
             /,           
          ..,                  ,        
    * */
    /*
    // let str = path.join("/a/b", "c"); // /a/b/c
    // let str = path.join("/a/b", "/c"); // /a/b/c
    // let str = path.join("/a/b", "/c", "../"); // /a/b/c --> /a/b
    // let str = path.join("/a/b", "/c", "../../"); // /a/b/c --> /a
    // console.log(str);
     */
    
  • 3.正規化経路path.normalize(path)
  • /*
    let res = path.normalize("/a//b///c////d/////index.html");
    console.log(res);
    */
    
  • 4.相対経路計算path.relative(from, to)
  • /*
    path.relative(from, to):         
         : /data/orandea/test/aaa
         : /data/orandea/impl/bbb
    
    /data/orandea/test/aaa --> ../  --> /data/orandea/test
    /data/orandea/test --> ../ --> /data/orandea
    ..\..\impl\bbb
    * */
    /*
    let res = path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb');
    console.log(res);
     */
    
  • 5.解析経路path.resolve([...paths])
  • /*
    path.resolve([...paths]):       
       :             ,             
    * */
    // let res = path.resolve('/foo/bar', './baz'); // /foo/bar/baz
    // let res = path.resolve('/foo/bar', '../baz'); // /foo/baz
    // let res = path.resolve('/foo/bar', '/baz'); // /baz
    // console.log(res);