Path 对象可能表示文件或链接。如果 Path 对象指向软链接,可以调用 Files.isSymbolicLink() 方法来进行判断,这个方法接收一个 Path 类型的参数,并返回 boolean 值。下面的代码创建了一个名为 rafael.nadal.5 的软链接,并指向 C:\rafaelnadal\photos\rafa_winner.jpg 文件,随后校验了 Path 对象。
…
Path link = FileSystems.getDefault().getPath("rafael.nadal.5");
Path target = FileSystems.getDefault().getPath("C:/rafaelnadal/photos", "rafa_winner.jpg");
try {
Files.createSymbolicLink(link, target);
} catch (IOException | UnsupportedOperationException | SecurityException e) {
}
//check if a path is a symbolic link - solution 1
boolean link_isSymbolicLink_1 = Files.isSymbolicLink(link);
boolean target_isSymbolicLink_1 = Files.isSymbolicLink(target);
System.out.println(link.toString() + " is a symbolic link ? " + link_isSymbolicLink_1);
System.out.println(target.toString() + " is a symbolic link ? " + target_isSymbolicLink_1);
…
上面代码段的运行结果如下:
rafael.nadal.5 is a symbolic link ? true
C:\rafaelnadal\photos\rafa_winner.jpg is a symbolic link ? false
也可以通过属性视图来进行检验,basic 视图中有 isSymbolicLink 属性,用来检验是否为软链接。可以使用 readAttributes() 方法来获取 isSymbolicLink 属性(在这里不推荐使用,因为这个方法会返回一组属性列表),更为简单的做法是调用 getAttribute() 方法,如下所示:
…
try {
boolean link_isSymbolicLink_2 = (boolean) Files.getAttribute(link,
"basic:isSymbolicLink");
boolean target_isSymbolicLink_2 = (boolean) Files.getAttribute(target,
"basic:isSymbolicLink");
System.out.println(link.toString() + " is a symbolic link ? " + link_isSymbolicLink_2);
System.out.println(target.toString() + " is a symbolic link ? "+ target_isSymbolicLink_2);
} catch (IOException | UnsupportedOperationException e) {
System.err.println(e);
}
…
运行后,输出结果为:
rafael.nadal.5 is a symbolic link ? true
C:\rafaelnadal\photos\rafa_winner.jpg is a symbolic link ? false
文章来源:
http://www.aptusource.org/2014/04/nio-2-checking-a-symbolic-link/
分享到:
相关推荐
Java I/O, NIO, and NIO.2 is a power-packed book that accelerates your mastery of Java's various I/O APIs. In this book, you'll learn about classic I/O APIs (File, RandomAccessFile, the stream classes ...
Java NIO,全称为Non-Blocking Input/Output(非阻塞输入/输出),是Java标准库提供的一种替代传统的I/O模型的新技术。自Java 1.4版本引入NIO后,它为Java开发者提供了更高效的数据传输方式,尤其是在处理大量并发...
New I/O (NIO), and NIO.2 categories. You learn what each category offers in terms of its capabilities, and you also learn about concepts such as paths and Direct Memory Access. Chapters 2 through 5 ...
Java IO、NIO以及NIO.2是Java中用于处理输入/输出操作的三种主要机制。本书《Java IO, NIO and NIO.2》旨在深入浅出地介绍这些机制,同时书中内容均为英文。接下来将详细介绍这些知识点。 **Java IO** Java IO是...
此外,NIO.2还增强了对符号链接和硬链接的支持,这在第三章中有所讨论。用户可以创建、读取和删除这些链接。 ### 6. 文件和目录操作 第四章则详细介绍了文件和目录的各种操作,包括创建、删除、移动等。 ### 7. ...
java nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava ...
本篇我们将深入探讨NIO.2中的几个关键概念和类,包括`Files`, `Path`, `FileAttributes`, `DirectoryWatcher`以及`FileVisitor`。这些组件极大地增强了Java对操作系统文件系统的访问能力。 首先,`Path`接口是NIO.2...
总的来说,Java I/O、NIO和NIO.2是Java平台中处理输入输出的三个重要阶段,它们各自有其特点和适用范围。学习和运用这些技术,能够帮助开发者更好地处理数据交互,提高程序的性能和可扩展性。通过阅读《Java I:O, ...
`Pro Java 7 NIO.2`这本书由Anghel Leonard著,深入探讨了Java NIO.2 API,这是Java 7引入的进一步扩展,包括: 1. **文件系统API增强**:新增了AsynchronousFileChannel,支持异步文件操作,可以在后台线程中执行...
Java NIO.pdf nio教程 Java NIO.pdf nio教程 java nio
This book covers all the important aspects involved in developing NIO.2-based applications. It provides clear instructions for getting the most out of NIO.2 and offers many exercises and case studies ...
Java NIO(New Input/Output)是Java标准库中提供的一种I/O模型,与传统的BIO( Blocking I/O)相比,NIO具有更好的性能和更高的灵活性。NIO的核心组件包括通道(Channel)、缓冲区(Buffer)和选择器(Selector)。...
Pro Java 7 NIO.2 – PDF Books
NIO(New IO)是Java平台中用于处理输入/输出操作的一种高级API,它在Java 1.4版本中引入,以替代传统的IO流模型。NIO提供了更高效、更灵活的数据传输方式,尤其适用于高并发和大数据量的场景。 在Java的NIO体系中...
【java.nio.file库详解】 Java 早期版本的文件I/O操作功能相对有限,存在几个显著问题:不支持现代文件系统特性、API设计复杂且冗长、处理大文件和并发性能不足。为了解决这些问题,Java引入了`java.nio.file`库,...
蔚来(NIO.US)新车上市,蔚来可期 蔚来(NIO.US)是一家中国的新能源汽车制造商,专注于生产高性能的电动汽车。 公司的目标是成为中国最大的新能源汽车品牌,并且跻身全球汽车行业的前列。 蔚来2025年目标价45.5...