Java Temelleri : Java`da Klasör İçeriğine Erişim

advertisement
Java'da Klasör İçeriğine Erişim
Java'da Klasör İçeriğine Erişim
Java'da File sınıfını kullanarak bir klasörün altındaki dosya ve alt klasörlere
erişmek, FileFilter'la sadece bazılarını seçmek
File Sınıfı
Java'da File sınıfı hem dosyalara (file'lara) hem de klasörlere (directory'lere) karşılık gelir. Aslında klasör de bir çeşit dosyadır ve klasör olmayan
dosyalara 'normal' dosya denir.
Bir Klasörün İçindekileri Bulmak
Bir klasörün içinde bulunan dosya ve alt klasörleri bulmak için File sınıfının list() ve listFiles() yöntemleri kullanılır. Bunlarda list() dosya
ve klasörlerin sadece adlarını verirken, listFiles() dosya ve alt klasörlere ait File nesnesi dizisi döndürür. Klasörün içindekilerin
sadece adı değil de oluşturulma tarih, salt okunur olup olmadığıgibi bilgiler almak için ikincisi kullanılır.
Bir klasörün içindekileri dökmek için
File[] list=dir.listFiles();
for(int i=0;i<list.length;i++){
System.out.println(list[i].getName());
}
şeklinde bir kod kullanılabilir. Burada sadece dosyanın adı ekrana basılmaktadır.
Dosya Filtresi Kullanmak
Dosyaları belirten File sınıfındaki list..() yöntemleri klasörün altındaki tüm dosya ve klasörleri alır. Sadece bazı koşullara uyanları
almak için FilenameFilter ve FileFilter arayüzleri kullanılır. FilenameFilter sadece adıyla ilgili bir kriter vermeyi
sağlarken, FileFilter koşulun File sınıfıyla veriebilmesini sağlar. İkisi de kritere uygunluğu accept() yöntemiyle sağlarlar. Sadece
dosyaları (klasörleri değilde normal dosyaları) listelemek için filtre :
FileFilter filter=new FileFilter(){
public boolean accept(File file){
return file.isFile();
}
};
şeklinde tanımlanabilir. Burada yapılan accept() yöntemini yazmak ve koşula uyulduğunda true döndürmektir. Koşulu sağlamak için
bu örnekte dosyanın normal dosya olup olmadığını gösteren isFile() yöntemi kullanılmıştır. Filtreyi kullanarak listelemek için
File[] normals=folder.listFiles(filter);
şeklinde bir kod yazılır.
Hem filtreli hem filtresiz listelem yapan örneğin tamamı :
import java.io.*;
public class DirectoryTest{
public static void listTest(File dir){
File[] list=dir.listFiles();
for(int i=0;i<list.length;i++){
System.out.println(list[i].getName());
}
}
public static void filterTest(File folder){
FileFilter filter=new FileFilter(){
public boolean accept(File file){
return file.isFile();
}
};
File[] normals=folder.listFiles(filter);
for(int i=0;i<normals.length;i++){
System.out.println(normals[i].getName());
}
www.dijitalders.com
Java'da Klasör İçeriğine Erişim
1
Java'da Klasör İçeriğine Erişim
}
public static void main(String[] args){
File dir=new File("C:\");
listTest(dir);
filterTest(dir);
}
}
Kaynak www.godoro.com/Portal/Content/Article/ArticleViewPage.aspx
www.dijitalders.com
Java'da Klasör İçeriğine Erişim
2
Download