2010-12-06 22 views
10

Temel bir dosya tarayıcısı yapıyorum ve varsayılan kök dizini nasıl alacağımı öğrenmek istiyorum. java.io.File.listRoots()'un tüm kökleri (benim için A:\, C:\, D:\, E:\, F:\, G:\, H:\, I:\, L:\ T:\, U:\, X:\, Y:\, Z:\) verdiğini biliyorum, ancak kullanıcının öncelikle kullandığı (yani, üzerinde İşletim sistemi olan) olmasını istiyorum, böylece taramayı başlatmak için nereden başlayacağımı biliyorum. Bu herhangi bir yardım, ancak deneyebilirsiniz eğerJava'da varsayılan kök dizini alma

cevap

2

işletim sistemi kök bölümü alınıyor Unix üzerine o / hep beri Windows üzerinde yalnızca şeydir.

Dolayısıyla, şu kod yalnızca Windows için çalışır:

System.getenv("SystemDrive"); 

O SystemDrive ortam değişkeni değerini alır. Bu her zaman işletim sisteminin kök bölümünü döndürmelidir. C:.

15

emin değil:

import javax.swing.filechooser.*; 

FileSystemView.getFileSystemView().getRoots()[0]; 

veya

FileSystemView.getFileSystemView().getHomeDirectory(); 

veya son kod pasajı için

System.getProperty("user.dir"); 

, sen alabilir null dönene kadar getParent() kullanarak yukarı doğru gezinerek kök dizini döndürülür.

+0

Linkler ikisini de bozdu – IanGilham

+0

@IanGilham Başka bir soruya yorum yapmak istediğinizi düşünüyorum – Supuhstar

+1

Evet, kötüyüm. Kastettiğim birini bulmuş gibisin. – IanGilham

0
public static String rootDirectory(){ 
     return File.listRoots()[0].getAbsolutePath(); 
} 
+7

, bu bir disket sürücünüz varsa, Windows'da 'A' sürücü olmamak garantilidir? – Supuhstar

+1

@Supuhstar, Ben sadece bir test yaptım ve cevap hayır. Windows altında, köklerin listesini alfabetik sırayla döndürür, böylece "A: \" ilk olur. Ayrıca, belgelere göre (https://docs.oracle.com/javase/7/docs/api/java/io/File.html#listRoots()): "Belirli bir Java platformu sıfır veya daha fazla destekleyebilir hiyerarşik olarak düzenlenmiş dosya sistemleri. " Başka bir deyişle, kör olarak dereferencing dizini 0 bir ArrayIndexOutOfBoundsException neden olabilir. Bu cevap tamamen çapraz platform değil ve güvenilir değil. –

İlgili konular