package com.levelup.java.io;
import static org.junit.Assert.assertFalse;
import java.io.IOException;
import java.net.URISyntaxException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributes;
import org.apache.commons.io.FileUtils;
import org.junit.Before;
import org.junit.Test;
/**
* This java example will demonstrate how to
* determines whether the specified file is a
* symbolic Link rather than an actual file.
*
* @author Justin Musgrove
* @see <a href='http://www.leveluplunch.com/java/examples/determine-if-file-is-symbolic-link/'>Is file a symbolic link</a>
*/
public class IsFileSymbolicLink {
private static final String SOURCE = "com/levelup/java/io/is-symbolic-link.txt";
Path source;
@Before
public void setUp() throws IOException, URISyntaxException {
source = Paths.get(this.getClass().getClassLoader().getResource(SOURCE)
.toURI());
}
@Test
public void file_is_symbolic_link_nio() throws IOException {
BasicFileAttributes attr = Files.readAttributes(source,
BasicFileAttributes.class);
boolean isSymbolicLink = attr.isSymbolicLink();
assertFalse(isSymbolicLink);
}
@Test
public void file_is_symbolic_link_nio_files () throws IOException {
boolean isSymbolicLink = Files.isSymbolicLink(source);
assertFalse(isSymbolicLink);
}
@Test
public void file_is_symbolic_link_apache_commons() throws IOException {
boolean isSymbolicLink = FileUtils.isSymlink(source.toFile());
assertFalse(isSymbolicLink);
}
}