453 Stimmen

Wie kombiniert man Pfade in Java?

Gibt es ein Java-Äquivalent für System.IO.Path.Combine() in C#/.NET? Oder irgendeinen Code, um dies zu erreichen?

Diese statische Methode kombiniert eine oder mehrere Zeichenketten zu einem Pfad.

1 Stimmen

Diese SO könnte eine Frage helfen.

0voto

JackCid Punkte 166

Diese Lösung bietet eine Schnittstelle zum Verbinden von Pfadfragmenten aus einem String[]-Array. Sie verwendet java.io.File.File(String parent, String child) :

    public static joinPaths(String[] fragments) {
        String emptyPath = "";
        return buildPath(emptyPath, fragments);
    }

    private static buildPath(String path, String[] fragments) {
        if (path == null || path.isEmpty()) {
            path = "";
        }

        if (fragments == null || fragments.length == 0) {
            return "";
        }

        int pathCurrentSize = path.split("/").length;
        int fragmentsLen = fragments.length;

        if (pathCurrentSize <= fragmentsLen) {
            String newPath = new File(path, fragments[pathCurrentSize - 1]).toString();
            path = buildPath(newPath, fragments);
        }

        return path;
    }

Dann können Sie es einfach tun:

String[] fragments = {"dir", "anotherDir/", "/filename.txt"};
String path = joinPaths(fragments);

Rückgabe:

"/dir/anotherDir/filename.txt"

0voto

Unter der Annahme, dass alle angegebenen Pfade absolute Pfade sind, können Sie die folgenden Schnipsel verwenden, um diese Pfade zusammenzuführen.

String baseURL = "\\\\host\\testdir\\";
String absoluteFilePath = "\\\\host\\testdir\\Test.txt";;
String mergedPath = Paths.get(baseURL, absoluteFilePath.replaceAll(Matcher.quoteReplacement(baseURL), "")).toString();

Ausgangspfad ist \\host\testdir\Test.txt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X