如果symlink是与符号链接相对应的File对象,则:

File target = symlink.getCanonicalPath();

…成功返回它指向的目标. Paths#toRealPath()在相同情况下也可以使用.

但是,如果符号链接断开(悬挂),则以上两个API均无法返回表示其指向的(不存在的)东西的文件(或路径).

我正在编写一个工具,即使对于悬挂的符号链接,也需要能够读取这些值.我使用什么API获取符号链接指向的文件或目录(无论符号链接正确还是损坏)?

更新

根据接受的答案,可以使用以下方法获得符号链接的目标(甚至是断开的链接):

Path target = Files.readSymbolicLink(Paths.get("/some/directory/symlink"));

…如果目标是相对的,则可以通过执行以下操作根据找到符号链接本身的位置取消引用:

Paths.get("/some/directory/symlink").resolveSibling(".").resolve(target);

解决方法:

您可以使用Java的nio文件系统api:

Path target = Files.readSymbolicLink(Paths.get("/symlink"));

标签:java

来源: https://codeday.me/bug/20191026/1935007.html

java用符号断开取前面_java-如何读取断开的符号链接指向的路径?相关推荐

  1. java字符串转json取集合_Java中Json字符串直接转换为对象的方法(包括多层List集合)...

    使用到的类:net.sf.json.JSONObject 使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,还必须有其它几个依赖包:commons-b ...

  2. java字符串根据分隔符取值_java中解析含分隔符的字符串

    java中解析含分隔符的字符串 (2010-03-24 16:43:58) 标签: 杂谈 字符串的分隔对于一个以某种分隔符标识字段的字符串,如果想得到串中每个字段项,常用的分隔方法能3种. 设args ...

  3. java中map怎么取值_java中map的取值

    package com.itcast.map; import java.util.HashMap; import java.util.Map; import java.util.Set; import ...

  4. java中between的取值_Java中的between()方法的持续时间

    可以使用between()Java中Duration类中的方法获得两个时间对象之间的持续时间.此方法需要两个参数,即开始持续时间和结束持续时间.同样,它返回这两个时间持续时间对象之间的持续时间. 演示 ...

  5. java負數能取余_Java别说取余(%)运算简单,你真的会吗?-Go语言中文社区

    一,直击现场 下面我来抛出几道题: 说明m是商,n是余数: (1)正数%正数 3%2=m--.n 2%3=m--.n (2)正数%负数或者负数%正数 -3%2=m--.n 3%-2=m--.n -2% ...

  6. java多层map嵌套取值_java中map的多层遍历

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Map> testmap=new HashMap>();Map user1=new HashMap();user1.put(1, (float ...

  7. java计算文件里的总分_java程序读取txt文件并计算总分 求帮忙

    展开全部 你这个不难,就是字符串处理, 你的文件修改下:每行两两元素636f70793231313335323631343130323136353331333332636336之间的空格用一个,如果超 ...

  8. java读文件几种方式_java中读取文件的方式有哪几种

    java中读取文件的方式有哪几种 发布时间:2020-06-19 13:36:48 来源:亿速云 阅读:135 作者:鸽子 读取文件有多种方式,基于传统的输入流方式或基于nio的Buffer缓冲对象和 ...

  9. Java获取文档页数_java准确读取word文件页数

    由于本人在做一个网上打印网站,遇到了一个需求是"准确读取word文件页数,从而实现计费功能",通过很长时间的学习.查资料后,终于解决了这个问题,因此把方法写出来,方便有同样需求的人 ...

最新文章

  1. 利用openfiler建立仲裁磁盘
  2. NLP能否像人脑一样工作?CMU、MIT三篇论文详解机器和大脑范畴下NLP的关系
  3. python文件传输模块ftplib模块的使用
  4. Calendar的获取变化日期
  5. Java Stream简介, 流的基本概念.
  6. Spring的核心机制依赖注入,Junit测试与Java基础Getter和Setter两种方法意义——2017.07.26...
  7. java map扩容机制_java中ConcurrentHashMap的扩容机制是怎样的?详细解析
  8. 别让for循环毁了你的程序(一)
  9. 从C语言到C++的进阶之C到C++的转变(篇一)
  10. COSCon'20 Apache Roadshow- China 精彩收官 | 数据篇
  11. Jmeter-【JSON Extractor】-响应结果中数组多个相同key取值
  12. Rust : 用rust实现Diffe-Hellman算法
  13. 信息熵,交叉熵,KL散度,JS散度之间的关系
  14. [架构之美]一款APP从想法-开发-上线-产品的全过程
  15. 论文笔记目录(ver2.0)
  16. 阿里副总裁贾扬清回应:确认离职,或投身AI架构创业!
  17. 2017.11.21 软件工程概论第一节课
  18. QPainter实现简单的绘图程序(绘图工具)
  19. IDEA配置连接数据库时报错Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezone‘ propert
  20. 系统分析与设计第四次作业

热门文章

  1. Python中字符串使用方法总结(学习笔记)
  2. 树莓派-格式化硬盘(U盘)为ext4格式并挂载
  3. 2017-2018网络攻防第二周
  4. WindowsServer2003双网卡配置
  5. 17、任务十六——事件委托机制、简单表单验证
  6. ECMAScript5 ES5
  7. Recommend索引
  8. UA MATH567 高维统计专题3 含L1-norm的凸优化6 Stochastic Gradient Descent简介
  9. UA MATH567 高维统计II 随机向量6 亚高斯随机向量的应用: 半正定规划
  10. 认识Linux设备驱动模型和Kobject