从绝对路径中提取相对路径

2023-12-30

这是一个看似简单的问题,但我很难以干净的方式完成它。我有一个文件路径如下:

/这个/是/一个/绝对/路径/到/我的/文件的/位置

我需要的是从上面给定的路径中提取 /of/my/file ,因为这是我的相对路径。

我的想法如下:

String absolutePath = "/this/is/an/absolute/path/to/the/location/of/my/file";
String[] tokenizedPaths = absolutePath.split("/");
int strLength = tokenizedPaths.length;
String myRelativePathStructure = (new StringBuffer()).append(tokenizedPaths[strLength-3]).append("/").append(tokenizedPaths[strLength-2]).append("/").append(tokenizedPaths[strLength-1]).toString();

这可能会满足我的即时需求,但是有人可以建议一种更好的方法从java中提供的路径中提取子路径吗?

Thanks


Use the URI类 http://docs.oracle.com/javase/7/docs/api/java/net/URI.html:

URI base = URI.create("/this/is/an/absolute/path/to/the/location");
URI absolute =URI.create("/this/is/an/absolute/path/to/the/location/of/my/file");
URI relative = base.relativize(absolute);

这将导致of/my/file.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从绝对路径中提取相对路径 的相关文章

  • JavaMail Gmail 问题。 “准备启动 TLS”然后失败

    mailServerProperties System getProperties mailServerProperties put mail smtp port 587 mailServerProperties put mail smtp
  • AES 加密 Java/plsql

    我需要在Java和plsql DBMS CRYPTO for Oracle 10g 上实现相同的加密 解密应用程序 两种实现都工作正常 但这里的问题是我对相同纯文本的加密得到了不同的输出 下面是用于加密 解密过程的代码 Java 和 PLS
  • 解决错误:日志已在具有多个实例的atomikos中使用

    我仅在使用atomikos的实时服务器上遇到问题 在我的本地服务器上它工作得很好 我在服务器上面临的问题是 init 中出错 日志已在使用中 完整的异常堆栈跟踪 java lang RuntimeException Log already
  • JNI 不满意链接错误

    我想创建一个简单的 JNI 层 我使用Visual studio 2008创建了一个dll Win 32控制台应用程序项目类型 带有DLL作为选项 当我调用本机方法时 出现此异常 Exception occurred during even
  • Java8无符号算术

    据广泛报道 Java 8 具有对无符号整数的库支持 然而 似乎没有文章解释如何使用它以及有多少可能 有些函数 例如 Integer CompareUnsigned 很容易找到 并且似乎可以实现人们所期望的功能 但是 我什至无法编写一个简单的
  • java.io.IOException: %1 不是有效的 Win32 应用程序

    我正在尝试对 XML 文档进行数字签名 为此我有两个选择 有一个由爱沙尼亚认证中心为程序员创建的库 还有一个由银行制作的运行 Java 代码的脚本 如果使用官方 认证中心 库 那么一切都会像魅力一样进行一些调整 但是当涉及到银行脚本时 它会
  • HDFS:使用 Java / Scala API 移动多个文件

    我需要使用 Java Scala 程序移动 HDFS 中对应于给定正则表达式的多个文件 例如 我必须移动所有名称为 xml从文件夹a到文件夹b 使用 shell 命令我可以使用以下命令 bin hdfs dfs mv a xml b 我可以
  • 如何为 Gson 编写自定义 JSON 反序列化器?

    我有一个 Java 类 用户 public class User int id String name Timestamp updateDate 我收到一个包含来自 Web 服务的用户对象的 JSON 列表 id 1 name Jonas
  • hibernate总是自己删除表中的所有数据

    您好 我正在开发一个 spring mvc 应用程序 它使用 hibernate 连接到存储文件的 mysql 数据库 我有两个方法 一个方法添加我选择的特定文件路径中的所有文件 另一种方法调用查询以返回从 mysql 存储的文件列表 问题
  • 使用替换字符串中多个单词的最有效方法[重复]

    这个问题在这里已经有答案了 此刻我正在做 Example line replaceAll replaceAll cat dog replaceAll football rugby 我觉得那很丑 不确定有更好的方法吗 也许循环遍历哈希图 ED
  • 请求位置更新参数

    这就是 requestLocationUpdates 的样子 我使用它的方式 requestLocationUpdates String provider long minTime float minDistance LocationLis
  • 序列化对象以进行单元测试

    假设在单元测试中我需要一个对象 其中所有 50 个字段都设置了一些值 我不想手动设置所有这些字段 因为这需要时间而且很烦人 不知何故 我需要获得一个实例 其中所有字段都由一些非空值初始化 我有一个想法 如果我要调试一些代码 在某个时候我会得
  • 检查 Android 手机上的方向

    如何查看Android手机是横屏还是竖屏 当前配置用于确定要检索的资源 可从资源中获取Configuration object getResources getConfiguration orientation 您可以通过查看其值来检查方向
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • 尝试使用 Ruby Java Bridge (RJB) gem 时出现错误“无法创建 Java VM”

    我正在尝试实现 Ruby Java Bridge RJB gem 来与 JVM 通信 以便我可以运行 Open NLP gem 我在 Windows 8 上安装并运行了 Java 所有迹象 至少我所知道的 都表明 Java 已安装并可运行
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • Springs 元素“beans”不能具有字符 [children],因为该类型的内容类型是仅元素

    我在 stackoverflow 中搜索了一些页面来解决这个问题 确实遵循了一些正确的答案 但不起作用 我是春天的新人 对不起 这是我的调度程序 servlet
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n
  • 如何修复“sessionFactory”或“hibernateTemplate”是必需的问题

    我正在使用 Spring Boot JPA WEB 和 MYSQL 创建我的 Web 应用程序 它总是说 sessionFactory or hibernateTemplate是必需的 我该如何修复它 我已经尝试过的东西 删除了本地 Mav

随机推荐

  • git status 显示 fatal: bad object HEAD

    我在 Windows Azure 上使用 git 时遇到问题 Git 状态显示 致命 坏对象 HEAD 我尝试运行 git fsck full git gc But git fsck shows broken link from commi
  • 如果用户关闭浏览器窗口或离开 php 页面,如何销毁会话?

    我有一些已保存的会话 如果用户关闭浏览器窗口或单个选项卡或离开页面 我想销毁所有会话 我有什么办法可以做到这一点吗 如今 所有现代选项卡式浏览器都变得相当复杂 因此 您只能依赖会话超时 不过没什么大不了的 你确定你真的需要这个吗 这会给用户
  • 如何在一个屏幕上隐藏反应导航标题

    我需要隐藏我尝试过的应用程序的登陆页面上的导航栏 const Stack createStackNavigator Landing screen LandingScreen headerMode none navigationOptions
  • 编译器将 printf 更改为 put

    考虑以下代码 include
  • 在一台计算机上,进程外运行的 C# ServicedComponent 出现文件未找到异常

    我编写了一个愚蠢简单的 ServicedComponent COM 组件 来在进程外运行并在 x64 服务器上包装仅 x86 的 COM 组件 在我的测试虚拟机 Server 2008 R2 上它运行良好 在生产盒上 我收到文件未找到异常
  • 如何为 Material-ui TextField 设置默认日期 Type=date

    我刚刚开始使用 React 我正在尝试使用该材料的日期选择器 它看起来像这样
  • WXPython 与 MatPlotLib

    我正在尝试将 MatPlotLib 与 WXPython 一起使用 我找到了一个很好的例子http www cs colorado edu kena classes 5448 s11 presentations pearse pdf htt
  • 当前在 C# 中跟踪程序流程的可能性?

    我用过波斯特锐普 http www sharpcrafters com 几年前到跟踪程序流程执行期间无需手动添加trace语句到方法 是否还有其他新方法可以跟踪执行以以类似的方式调试输出 最好是一种不需要对构建的组件进行检测的方法 也许不可
  • 如何使用eclipse在android中使用jzy3d?

    你好 我想在 android 中创建一个 3dplot 图表 我想使用 jzy3d lib 并找到了这个示例作为开始 import org jzy3d chart Chart import org jzy3d colors Color im
  • 如何拦截和修改任何对象的特定属性

    对于任何未知数量的对象 我想要拦截并更改某些属性 如果需要 我尝试过 getter 和 setter 但我只能实现接近我想要的目标 并且只能针对已知的对象 以下是我想要实现的目标的示例 在我的范围 闭包之外创建的对象 正如您所看到的 这些是
  • 重定向前的时间延迟

    我为我的网络应用程序创建一个注册页面 该应用要求用户成功注册新帐户后 页面会显示 注册成功 的消息 然后等待5秒才切换到登录页面 我用了Thread Sleep 5000 它等待 5 秒 但不显示消息 谁能帮我 void AccountSe
  • 基于另一个更新的列更新列

    我的问题与单个更新语句中的更新顺序有关 我观察到 当我使用 a 设置变量时SELECT声明 变量是按顺序设置的 例如 SELECT Test1 2 Test2 Test1 1 在此刻 Test1将2 and Test2将3因为集合操作是按顺
  • std::pair<> 的默认构造函数是否将基本类型(int 等)设置为零?

    写完后 std pair
  • Android 浏览器应用程序对 URL 的最大长度有限制吗?

    有谁知道 Android 浏览器在 GET URL 中接受的字符数是否有最大限制 我假设任何限制都会转化为其他基于 WebKit 的浏览器 例如 iPhone 等 但如果有人有不同的了解 对此进行澄清也很好 None
  • Webpack 在编译 TypeScript 代码失败时导致 gulp watch 崩溃

    我正在运行一个 gulp watch 任务 它正在编译我的前端应用程序 当我遇到打字稿错误时 只是因为我太早点击保存 整个过程崩溃 我必须手动重新启动它 我希望 webpack 和 typescript 编译器只报告错误 只要它们在监视模式
  • 是否可以在 BigQuery 中将外部表转换为本机表?

    我已经从 Google Cloud Storage 创建了一个表 文件路径以 gs 开头 即使尝试多次后 我也无法将其创建为本机 我只有在将表选项设置为本机后才成功 后来我就可以成功查询到这个表了 但是 我需要执行以下操作 向表中添加一列
  • s3可容纳的最大连接数

    我正在学习亚马逊网络服务 我只是想知道 Amazon S3 在不崩溃的情况下可以同时保持的最大连接数 大约 是多少 理论上这是无限的 为了实现这一目标 他们使用了他们在此处解释的分区方案 http docs aws amazon com A
  • Xcode 无法读取当前工作目录中项目特定的 .lldbinit

    我想设置项目特定的 lldbinit 文件 以便 所有内容 都处于版本控制之下 并且可以在新计算机中轻松设置 然而似乎我只能读取 lldbinit 文件而不是任何 git project lldbinit 文件 LLDB手册说 lldb 将
  • Twitter4j。通过#hashtag进行查询和过滤帖子

    我正在尝试将 Twitter 使用 Twitter4j 集成到我的 Android 应用程序中 但我有一些顾虑 问题 我想检索具有特定 hashtag 的推文 例如 sxbsw2011 这是我当前正在使用的代码 Query query ne
  • 从绝对路径中提取相对路径

    这是一个看似简单的问题 但我很难以干净的方式完成它 我有一个文件路径如下 这个 是 一个 绝对 路径 到 我的 文件的 位置 我需要的是从上面给定的路径中提取 of my file 因为这是我的相对路径 我的想法如下 String abso