2012-03-11 6 views
5

私は、あるディレクトリから始めて基本的な操作をしています。ルートに達するまで、私はファイルシステムをトラバースします。 Linux/Macでは、ルートは明らかに/であり、WindowsではC:\または別のドライブ文字を使用できます。私の質問は、Node.jsがファイルシステムのルートディレクトリを特定する方法があるかどうかです。Node.jsを使ってファイルシステムのルートを特定する

現在、私は単にそれが変化しなくかどうかを確認するためにpath.normalize(dir + "/../")に対する最後のディレクトリを確認するために頼りますよ。そこにprocessプロパティ/メソッドはありますか?多分モジュールですか?

/^([^\\/]*[\\/]).*/.test(process.cwd()) 
var root = RegExp.$1; 

WindowsとLinuxの両方のためにCWDからルートを取得する必要があります:Node.jsのを行う必要があることを特別なものはありません

+1

Windowsで実行している場合、どのドライブ文字を使用しますか?システムドライブ?実行中のスクリプトを含むドライブ?ドライブに別のファイルがありますか?ハードコードされたドライブレター? – icktoofay

+0

"/"は両方のプラットフォームで動作すると思います。どのような目的のために使用しますか? – Domenic

+0

Windowsの場合:[スタート]> [ファイル名を指定して実行]> [cmd.exe]を選択します。 'C:\ Users \ Domenic> cd /'と入力します。直接 'C:\>'に行きます。 – Domenic

答えて

2

これは機能しませんか?

var path = require("path"); 
var os = require("os"); 
var root = (os.platform == "win32") ? process.cwd().split(path.sep)[0] : "/" 
+1

ノード0.12.4(他のバージョンについてはわかりません)に 'os.platform'を実行する必要があります。 v6.9.4で 'os.platform()' – Tyblitz

+0

を実行する必要があります。これはos.platform()です。 –

1

、答えは単純で正規表現です。

+2

[RegExp。$ xは非推奨](https://developer.mozilla.org/ja/JavaScript/Reference/Deprecated_Features#RegExp_Properties) – Saxoier

+0

/^([^\\/]*[\\/]).*/ .exec(process.cwd())[1]は簡単に読むことができます –

関連する問題