Linux java use.dir,在Java代码中将Windows样式路径转换为Unix路径

I am working in a java code that was designed to run on windows and contains a lot of references to files using windows style paths "System.getProperty("user.dir")\trash\blah". I am in charge to adapt it and deploy in linux. Is there an efficient way to convert all those paths(\) to unix style (/) like in "System.getProperty("user.dir")/trash/blah". Maybe, some configuration in java or linux to use \ as /.

解决方案

My approach is to use the Path object to hold the path information, handle concatenate and relative path. Then, call Path's toString() to get the path String.

For converting the path separator, I preferred to use the apache common io library's FilenameUtils. It provides the three usefule functions:

String separatorsToSystem(String path);

String separatorsToUnix(String path);

String separatorsToWindows(String path)

Please look the code snippet, for relative path, toString, and separator changes:

private String getRelativePathString(String volume, Path path) {

Path volumePath = Paths.get(configuration.getPathForVolume(volume));

Path relativePath = volumePath.relativize(path);

return FilenameUtils.separatorsToUnix(relativePath.toString());

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值