2012-03-11 14 views
5

Belirli bir dizinden başladığım temel bir işlem yapıyorum ve kök dosyaya ulaşana kadar dosya sistemini çapraz yapıyorum. Linux/Mac'de, kök açıkça / ve Windows'da C:\ veya başka bir sürücü harfi olabilir. Sorum şu: Node.js dosyasının dosya sisteminin kök dizinini tanımlamak için bir yol olup olmadığı.Node.js ile Dosya Sistemi Kökünü Belirleme

Şu anda, değiştirmeyi durup durmadığını görmek için en son dizini path.normalize(dir + "/../") karşı kontrol etmeye çalışıyorum. Orada bir process özellik/yöntem var mı? Belki bir modül?

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

Windows hem de Linux için CWD'sindeki gelen kök almalısınız: node.js yapması gereken özel bir şey yok

+1

Windows'ta çalışıyorsanız, hangi sürücü harfini istiyorsunuz? Sistem sürücüsü? Çalışan komut dosyasını içeren sürücü? Başka bir dosya içeren sürücü mü? Sabit kodlanmış bir sürücü mektubu? – icktoofay

+0

"/" Her iki platformda da çalışacağını düşünürdüm. Hangi amaçla kullanacaksın? – Domenic

+0

Windows'da: Başlat> Çalıştır> cmd.exe. 'C: \ Kullanıcılar \ Domenic> cd /'. Beni doğrudan C: \> 'ye getirir. – Domenic

cevap

2

Bu işe yaramaz mı?

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

Node 0.12.4'te (diğer sürümler hakkında bilmiyorum) yapmanız gerekenler os.platform'un bir fonksiyonudur. bu yüzden os.platform() ' – Tyblitz

+0

'u v6.9.4’te yapmanız gerek. os.platform() –

1

, cevap basit regex olduğunu.

+2

[RegExp. $ X kullanımdan kaldırılmıştır] (https://developer.mozilla.org/en/JavaScript/Reference/Deprecated_Features#RegExp_Properties) – Saxoier

+0

/^([^\\/]*[\\/]).*/ .exec (process.cwd()) [1] okunması daha kolay –

İlgili konular