我正在接受作爲我的腳本之一的命令行參數的目錄路徑。有兩件事我想做。首先是我想確認路徑在目錄中傳遞。我想做的第二件事是追加到子目錄名稱的路徑(我知道提前的子目錄名稱)。如果庫中有任何功能會自動爲路徑添加尾部/
字符(如果它缺失),還是必須手動檢查該字符?什麼是追加到路徑的正確方法?
例如,如果/User/local
通過,那麼我必須補充/bin
的路徑,而如果路徑/User/local/
傳遞我必須補充bin
。
感謝您的幫助。
我正在接受作爲我的腳本之一的命令行參數的目錄路徑。有兩件事我想做。首先是我想確認路徑在目錄中傳遞。我想做的第二件事是追加到子目錄名稱的路徑(我知道提前的子目錄名稱)。如果庫中有任何功能會自動爲路徑添加尾部/
字符(如果它缺失),還是必須手動檢查該字符?什麼是追加到路徑的正確方法?
例如,如果/User/local
通過,那麼我必須補充/bin
的路徑,而如果路徑/User/local/
傳遞我必須補充bin
。
感謝您的幫助。
好像你只是想path.join,fs.existsSync,並fs.statSync
var path = require('path');
var fs = require('fs');
var dir = process.argv[2];
console.log(dir);
console.log(fs.existsSync(dir) && fs.statSync(dir).isDirectory());
console.log(path.join(dir, 'mysubdir'));
所以,如果我運行上面,如:node test.js /tmp
我會得到:
/tmp
true
/tmp/mysubdir
謝謝。這正是我所期待的。 – Max 2013-02-13 02:12:27
你可以把邏輯成一個短的函數,確保兩個部分之間只有一個「/」:
function appendToPath(orig, add) {
return orig.replace(/\/$/, "") + "/" + add.replace(/^\//, "");
}
var newPath = appendToPath("/User/local", "bin");
或
var newPath = appendToPath("/User/local/", "/bin");
或
var newPath = appendToPath("/User/local", "/bin");
他們都返回"/User/local/bin"
。
文件系統應該將Afaik'/ User/local/bin'處理成等於'/ User/local // bin'。 – Bergi 2013-02-13 00:15:37
@Bergi哇,這真的很有趣。謝謝。 – Max 2013-02-13 00:18:34
好的,因爲我在評論中看到4個upvotes,它似乎是真的:-) – Bergi 2013-02-13 00:23:07