2016-03-18 24 views
0

dosya yolundan dosya yolunu almak için dosya adından dosya yolunu almak için src/test/resources/datasheets dizinim var.Dosya adından java

src/test/resources/datasheets 
xyz/a1.txt 
abc/b1/txt

It has birçok dizinleri yeniden

Ben dosya adı ex verirsek dosya yolunu almak gerekir: "a1.txt" Ben önceden src/test/resources/datasheets/xyz/a1.txt olarak

Teşekkür almak gerekir

+0

Kullandığınız kodu bize gösterebiliyor musunuz, böylece nerede zorluk çekebileceğinizi görebiliyoruz? [Minimal, Tam ve Doğrulanabilir bir örnek nasıl oluşturulur] (http://stackoverflow.com/help/mcve) – pczeus

+0

'abc/b1/txt'' abc/b1.txt' değil midir? – Pshemo

+0

Test kaynakları için "src/test/resources" gibi bir dizin tanımlayan "maven" gibi bir denekten test yapıyor musunuz? Eğer öyleyse, testlerinizi çalıştırırken, kaynaklar derleme dizinine kopyalanacak ve 'a1.txt' kaynağının yolu sadece 'datasheets/xyz/a1.txt' olacaktır – AJNeufeld

cevap

0

Bu bilgi, [File docs] adresine başvurmuş olmanız durumunda kolayca erişilebilir.

File myDir = File(String pathname); 
if(myDir.isDirectory()) { 
    File[] contents = myDir.listFiles(); 
} 

senin contents[] neye benzediğini görmek ve gerekli değişiklikleri yapın.

1

Tüm alt dizinleri kontrol etmek için sadece özyinelemeli bir yöntem yazın. Umarım iş görür:

import java.io.File; 

public class PathFinder { 

    public static void main(String[] args) { 
     String path = getPath("a1.txt", "src/test/resources/datasheets"); 
     System.out.println(path); 
    } 

    public static String getPath(String fileName, String folder) { 
     File directory = new File(folder); 

     File[] fileList = directory.listFiles(); 
     for (File file : fileList) { 
      if (file.isFile()) { 
       if(fileName.equals(file.getName())) { 
        return file.getAbsolutePath(); 
       } 
      } else if (file.isDirectory()) { 
       String path = getPath(fileName, file.getAbsolutePath()); 
       if(!path.isEmpty()) { 
        return path; 
       } 
      } 
     } 

     return ""; 
    } 
} 
İlgili konular