java创建符号链接_符号链接或其他

# 符号链接或其他

如前所述,java.nio.file 包,特别是 Path 类,是“链接感知”。每个 Path 方法或者检测到遇到符号链接时该怎么做,

或者提供一个选项,使您能够在遇到符号链接时配置该行为。

迄今为止的讨论一直是关于 该章节中的-符号软链接 ,但是一些文件系统也支持硬链接。

硬链接比象征性链接更具限制性,如下所示: 链接的目标必须存在。

目录下通常不允许使用硬链接。

硬链接不允许跨越分区或卷。因此,它们不能跨文件系统存在。

一个硬链接看起来,像一个普通文件,所以他们很难找到。

对于所有意图和目的,硬链接与原始文件相同的实体。它们具有相同的文件权限,时间戳等。所有属性相同。

由于这些限制,硬链接不像符号链接那样经常使用,但 Path 方法与硬链接无缝连接。

几种方法专门针对链接进行处理,并在以下部分中介绍: 创建符号链接

创建硬链接

检测符号链接

查找链接的目标

# 创建符号链接

如果您的文件系统支持它,您可以使用该 createSymbolicLink(Path, Path, FileAttribute>) 方法创建一个符号链接 。

第二个 Path 参数表示目标文件或目录,可能或可能不存在。以下代码片段将创建具有默认权限的符号链接:

上面生成的文件我查看了一下,在 windos 中就是一个快捷图标文件,文件类型是 .symlink

该 FileAttributes 可变参数,可以指定被原子设置在创建链接时初始文件属性。但是,这个论点是为了将来的使用而进行的,目前还没有实现。

# 创建硬链接

您可以使用该方法创建到现有文件的硬(或常规)链接 createLink(Path, Path)。第二个 Path 参数定位现有文件,它必须存在或抛出一个 NoSuchFileException 。

以下代码片段显示了如何创建链接:

上面代码在 windows 中生成的文件我看了一下,最直观的感受就是:貌似是一个复制出来的文件,文件类型和源文件一样。没有看出来有什么区别

# 检测符号链接

要确定 Path 实例是否是符号链接,可以使用该 isSymbolicLink(Path) 方法。以下代码片段:

注:该方法不能判断硬链接

# 查找链接的目标

您可以使用以下 readSymbolicLink(Path) 方法获取符号链接的目标 :

这里使用上面创建链接后的文件来测试:输出如下:

如果 Path 不是一个符号链接,这个方法会抛出一个 NotLinkException。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值