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

可以调用 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)