2016-03-18 9 views
0

Um den Dateipfad von Dateiname im Verzeichnis zu erhalten, habe ich src/test/resources/datasheets Verzeichnis.Abrufen des Dateipfads von Dateiname in Java

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

Es hat viele Verzeichnisse wieder

Ich brauche den Dateipfad zu bekommen, wenn ich den Dateinamen ex geben: „a1.txt“ Ich brauche als src/test/resources/datasheets/xyz/a1.txt

Vielen Dank im Voraus erhalten

+0

Können Sie uns den Code zeigen, den Sie verwenden, damit wir sehen können, wo Sie Schwierigkeiten haben könnten? [Wie man ein minimales, komplettes und verifizierbares Beispiel erstellt] (http://stackoverflow.com/help/mcve) – pczeus

+0

Ist 'abc/b1/txt' nicht' abc/b1.txt'? – Pshemo

+0

Führen Sie Tests von etwas wie 'maven' aus, das ein Verzeichnis für Testressourcen als' src/test/resources' definiert? Wenn dies der Fall ist, werden die Ressourcen beim Ausführen der Tests in das Build-Verzeichnis kopiert, und der Pfad zur Ressource "a1.txt" würde eigentlich nur "Datenblätter/xyz/a1.txt" lauten – AJNeufeld

Antwort

0

Diese Informationen sind leicht zugänglich, wenn Sie auf die [File docs] verwiesen haben.

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

Sehen Sie, was Ihre contents[] aussieht und notwendige Änderungen vornehmen.

1

Schreiben Sie einfach eine rekursive Methode, um alle Unterverzeichnisse zu überprüfen. Ich hoffe, dass das funktioniert:

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 ""; 
    } 
} 
Verwandte Themen