En iyi java bir dizin sokmanın bir yolu? | Netgez.com
SORU
1 Temmuz 2010, PERÅžEMBE


En iyi java bir dizin sokmanın bir yolu?

java ve kod bir dizindeki tüm dosyaların bir listesini almak ile ilgili (alt klasörlerdeki dosyalar da dahil olmak üzere) arama yeniyim Merhabalar farklı yaklaşımlar ton verir.

Standart şekilde bugünlerde java ile dizin yineleme yapmak için nedir?

Ben temelde bir üst dizin geçmek istiyorum ve klasörleri iç içe geçmiş bile üst içindeki tüm dosyaları ile çalışmak mümkün olacak.

teşekkürler!

CEVAP
1 Temmuz 2010, PERÅžEMBE


Eğer verilen dosya (path) bir dizin ise File#isDirectory() test etmek için kullanabilirsiniz. Eğer bu true, Daha sonra ise sadece aynı yöntemi tekrar File#listFiles() sonucu ile arayın. Bu recursion denir.

Burada temel başlangıç bir örnek.

public static void main(String... args) {
    File[] files = new File("C:/").listFiles();
    showFiles(files);
}

public static void showFiles(File[] files) {
    for (File file : files) {
        if (file.isDirectory()) {
            System.out.println("Directory: "   file.getName());
            showFiles(file.listFiles()); // Calls same method again.
        } else {
            System.out.println("File: "   file.getName());
        }
    }
}

Bu ağaç JVM yığın daha derin olduğunda StackOverflowError duyarlı not tutabilir. Yinelemeli bir yaklaşım ya da tail-recursion yerine kullanmak için, ama bu başka bir konu;) isteyebilirsiniz

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Rozetked | Обзоры

    Rozetked | Ð

    5 AÄžUSTOS 2011
  • The CGBros

    The CGBros

    20 AÄžUSTOS 2011
  • THE RED DRAGON

    THE RED DRAG

    6 ÅžUBAT 2009