2011-12-01 25 views
5

Ben bu kod bit kullanıyorum:JFileChooser kullanarak tüm dosya adlarını dizinde alın.

fileBrowser() { 
     String toReturn = null; 
     JFileChooser Chooser = new JFileChooser(); 
     int choosen = Chooser.showOpenDialog(fileBrowser.this); 
     if (choosen == JFileChooser.APPROVE_OPTION) {   
      System.out.println(Chooser.getCurrentDirectory().toString()+"\\"+Chooser.getSelectedFile().getName()); 
     } 

    } 

tüm çalışma gayet Seçilen dosya adını ve konumunu, almak için. Ek olarak merak ediyordum, bu dizindeki tüm dosya isimlerini de almanın bir yolu var mı? .getAllFiles() gibi bir şey aradım ve bulamadım?

Teşekkürler.

cevap

7

Tabii,

File[] filesInDirectory = chooser.getCurrentDirectory().listFiles(); 

Sonra o dizinin adımlayabilirsiniz kullanın:

for (File file : filesInDirectory) { 
    System.out.println(file.getName()); 
} 
+2

OP sadece dosya adlarını aradığı için 'list()' yi kullanmak daha kolay olmaz mıydı? – mre

+0

Teşekkürler, ben tam olarak ne istediğimi list() ve yukarıdaki öneri kullandım, çok teşekkürler! –

+0

@ Крысa: Eğer * hepsi * yapmak istediyse (ve "dosya adı" tanımına bağlı olarak), o zaman evet. Ama genellikle bir noktada bir 'File' nesnesiyle etkileşimde bulunmak istersiniz ve OP'yi bir String aracı kullanmaktan kurtarmaya çalışıyordum. Benim tercihim, sunum zamanı gelene kadar gerçek nesnelerle yapışmaktır. Ayrıca, eğer 'FilenameFilter' yerine bir 'FileFilter' kullanılarak çok daha temiz olan dizinleri filtrelemek istediyse ve bu sadece' listFiles() 'için kullanılabilir. –

4

Eh, File.list() var. Bu, tüm dosyaları belirtilen dizinden adlarına göre listeler (yani File). Ancak bu, dizin isimlerini de döndürecektir. Bunu atlatmak için, listeden dizinleri filtrelemenizi sağlayacak diğer File.list(FilenameFilter filter) yöntemini kullanın.

İlgili konular