2017-05-29 89 views
0

我想獲得當前目錄的父母數組。目前,我正在做這個獲得fs的父母鏈

function parseStructure(drive) { 
    let structure = []; 
    while (drive.length > 3) { 
     structure.unshift(path.basename(drive)); 
     drive = path.dirname(drive); 
    } 
    drive = drive.substr(0, 1); 
    structure.unshift(drive); 

    return structure; 
} 

因爲path.dirname('C:/')回報C:/。這可能會在Windows上工作,但很可能不會在Linux上。我如何檢查當前目錄是否爲root?

此路線C:\Users\user\SO應該返回數組['C', 'Users', 'user', 'SO'],並且此路線/usr/user/SO應返回數組['usr', 'user', 'SO']

+3

你嘗試過'path.resolve()。split(path.sep)'? –

+0

的確,我沒有。如果你希望你可以張貼這個答案,否則我會明天。 –

回答

1

您可以嘗試

path.resolve().split(path.sep); 
// ['', 'home', 'myuser', 'mydir', 'my-nested-dir'] 

它將打印目錄的陣列到當前目錄(process.cwd()

要在開始的時候,你可以切片這個陣列中刪除多餘的空字符串:

path.resolve().split(path.sep).slice(1); 
// ['home', 'myuser', 'mydir', 'my-nested-dir']