SORU
27 NİSAN 2009, PAZARTESİ


Nasıl Java joker bir dizeyle eşleşen dosyaları bulmak için?

Bu gerçekten basit olmalıdır. Eğer böyle bir Dize varsa:

../Test?/sample*.txt

bu desenle eşleşen dosyaların listesini almak için genel kabul görmüş bir yolu nedir? ../Test1/sample22b.txt ../Test4/sample-spiffy.txt ../Test3/sample2.blah ../Test44/sample2.txt uygun olması gerekir (örn

org.apache.commons.io.filefilter.WildcardFileFilter bir göz attım ve canavar gibi görünüyor ama göreceli dizin yolu içinde dosyaları bulmak için nasıl kullanılacağını emin değilim.

Joker sözdizimi kullanır beri karınca için kaynak bakabilirim sanırım, ama burada bir şey çok açık kaçırıyor olmalıyım.

(edit: yukarıdaki örnek sadece örnek bir dava oldu. Yol için genel yollar zamanında joker karakterler içeren ayrıştırmak için arıyorum. Mmyers' ama önerim biraz sinir bozucu. dayalı nasıl yapılacağını çözdüm Söz değil bu java TOTEM gibi görünüyor otomatik ayrıştırma basit joker karakterler içinde main(String[] argümanlar) bir tek bağımsız değişken için "Kaydet" bana zaman ve güçlük... ben sadece mutlu değildim var olmayan dosya bağımsız karıştırın.)

CEVAP
27 NİSAN 2009, PAZARTESİ


Ben genelde Apache commons-io (listFiles iterateFiles yöntemleri) FileUtils kullanın. Genellikle kod bir şey like this görünüyor:

File dir = new File(".");
FileFilter fileFilter = new WildcardFileFilter("sample*.java");
File[] files = dir.listFiles(fileFilter);
for (int i = 0; i < files.length; i  ) {
   System.out.println(files[i]);
}

TestX klasörleri ile sorunu çözmek için, ilk klasör listesini yinelemek istiyorum:

File[] dirs = new File(".").listFiles(new WildcardFileFilter("Test*.java");
for (int i=0; i<dirs.length; i  ) {
   File dir = dirs[i];
   if (dir.isDirectory()) {
       File[] files = dir.listFiles(new WildcardFileFilter("sample*.java"));
   }
}

'Kaba kuvvet' çözüm ama iyi çalışması gerekir. oldukça Eğer bu sizin ihtiyaçlarınıza uygun değilse, her zaman RegexFileFilter kullanabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ampisound

    Ampisound

    12 Kasım 2006
  • AndyMcMillinTV

    AndyMcMillin

    6 HAZİRAN 2007
  • Liam Underwood

    Liam Underwo

    19 Mayıs 2009