Links, Symbolic or Otherwise

sanjiaowuhuan發表於2020-12-23

Links, Symbolic or Otherwise

Creating a Symbolic Link

CreateSymbolicLink.java

import java.io.*;
import java.nio.file.*;

public class CreateSymbolicLink {

    public static void main(String[] args) {

        Path newLink = Paths.get("test-link");

        Path target = Paths.get("Format.java");

        try {

            Files.createSymbolicLink(newLink, target);

        } catch (IOException x) {

            System.err.println(x);

        } 

    }

}

Creating a Hard Link

CreateHardLink.java

import java.io.*;
import java.nio.file.*;

public class CreateHardLink {

    public static void main(String[] args) {

        Path newLink = Paths.get("hard-link");

        Path existingFile = Paths.get("Format.java");

        try {

            Files.createLink(newLink, existingFile);

        } catch (IOException x) {

            System.err.println(x);

        }

    }

}

Detecting a Symbolic Link

TestSymbolicLink.java

import java.nio.file.*;

public class TestSymbolicLink {

    public static void main(String[] args) {

        Path file = Paths.get("test-link");

        if (Files.isSymbolicLink(file)) {

            System.out.println("I am symbolic link!");

        } else {

            System.out.println("guess wrong!");

        }

    }

}

Finding the Target of a Link

FindTarget.java

import java.io.*;
import java.nio.file.*;

public class FindTarget {

    public static void main(String[] args) {

        Path link = Paths.get("test-link");

        try {

            System.out.format("Target of link '%s' is '%s'%n", link, Files.readSymbolicLink(link));

        } catch (IOException x) {

            System.err.println(x);

        } 

    }

}

相關文章