如何处理规范路径与绝对路径的匹配及相对路径生成问题
Android路径匹配与相对路径生成问题
测试中发现,调用myfile.getCanonicalPath()会生成如下格式的路径:
/data/data/<pkg>/files/...
而调用myfile.getAbsolutePath()生成的路径格式为:
/data/user/0/<pkg>/files/...
现需实现以下两个方法之一:
方法1:判断路径是否指向同一文件系统位置
public boolean pathsAreEqual(String p1, String p2) { // return true if both paths represent the same location in filesystem }
方法2:生成相对路径
public String getRelativePath(String p1, String p2) { // return a reduced p2 to a relative path from p1 // was hoping to use Path.relativize() here but that fails due to prefix diffs. }
但两种路径的前缀差异导致直接处理遇到问题——比如原本想使用Path.relativize(),但因前缀不同无法生效。目前我能想到的解决思路是从右到左遍历路径,找到<pkg>名称并将其作为根路径来统一处理,希望得到其他可行的方案。
内容的提问来源于stack exchange,提问作者user17856705
相关产品推荐
相关产品推荐

