欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[NIO.2] 第二十二篇 创建硬链接

程序员文章站 2022-03-02 11:21:00
...
可以调用 createLink() 方法创建硬链接,它将会创建已存在文件的硬链接。这个方法返回新链接的 Path 对象,你可以使用这个 Path 对象来访问文件。

如果你的文件系统不支持硬链接,那么将会抛出 UnsupportedOperationException 异常。另外,要记住,硬链接只能为已存在的文件创建。

下面的代码演示了如何创建一个硬链接,名为 rafael.nadal.4 目标文件为 C:\rafaelnadal\photos\rafa_winner.jpg(这个文件必须存在,并且文件系统必须有创建硬链接的权限)。

import java.io.IOException;
import java.nio.file.FileSystems; 
import java.nio.file.Files; 
import java.nio.file.Path; 
public class Main { 
 public static void main(String[] args) { 
  Path link = FileSystems.getDefault().getPath("rafael.nadal.4"); 
  Path target = FileSystems.getDefault().getPath("C:/rafaelnadal/photos", "rafa_winner.jpg"); 
         
  try { 
      Files.createLink(link, target); 
            System.out.println("The link was successfully created!"); 
      } catch (IOException | UnsupportedOperationException | SecurityException e) { 
        if (e instanceof SecurityException) { 
            System.err.println("Permission denied!"); 
        } 
        if (e instanceof UnsupportedOperationException) { 
            System.err.println("An unsupported operation was detected!"); 
        } 
        if (e instanceof IOException) { 
            System.err.println("An I/O error occured!"); 
        } 
        System.err.println(e); 
  } 
 } 
} 


注:如果链接已经存在,那么会抛出 FileAlreadyExistsException 异常。

文章来源:http://www.aptusource.org/2014/04/nio-2-creating-a-hard-link/
相关标签: Java Java NIO.2