2010-12-01 25 views
8

Çalıştığım bir proje için yeniden oluşturma aşamasındayım ve dosya sistemi yollarını oluşturma ve temsil etme konusunda bazı iyileştirmeler yapmak istiyorum. Ubuntu, OSX ve Windows 7 üzerinde uyumluluğu sağlamak için Java kodunda göreli yollar temsil ederken dikkate alması gereken şeyler nelerÇapraz platform dosya yolu oluşturma ve gösterimi

Şu başvuran File örneği elde etmek için "Projem/foo/bar.f" Ben olurdu çizgisinde kodu:

File bar = new File(ProjectDirectory + "/" + FooResourceDirectory + "/" + barName);

Bunun birkaç nedeni yanlış görünüyor, en iyi uygulamaların bazıları nelerdir? Her şeyden

cevap

12

Belki bu tür bir şey yapmak için sağlanan kurucular kullanın:

new File(parent, child) 

Sen sağlamak için "yuva" onlar, ancak (örneğin bir işlev bir yol şey alma inşa almak için yapmak bu işlemek için Önemsiz . string...)

File constructors.

+0

File.pathSeparator, orijinal olarak aradığım şeyin bir parçasıdır, ancak yerleşik yapıcıları kullanma fikrini ve bir sarmalayıcı işlevini daha fazla iç içe/sahip olma fikrini beğendiğimi düşünüyorum. –

9

İlk yerine "/" nin File.separator File.pathSeparator kullanmalıdır.

+3

Dikkat bakınız:! File.pathSeparator = File.separator - File.pathSeparator() "/" örneğin bir yolun ayrı bölümlerine karakteridir ve File.separator (örneğin ";") karakter Farklı Yolları ayırmak için – Ralph

+1

Doğru kurucuyu şu şekilde kullanmayı tercih ediyorum: 'new File (ebeveyn, çocuk)' –

+1

@Ralph Bunu karıştırdığınızı düşünüyorum. ";" <-> "/" – lrxw

İlgili konular