使用Java / Android应用程序中的目录

时间:2016-10-10 13:57:37

标签: java android

我想创建一个函数来执行以下操作:替换在其中间填充了潜在的“../”和“./”的任意字符串,以指向带有点的绝对文件名删除了无关的斜杠。例如:/data/data/org.hacktivity.datatemple /../../ data /./ org.hacktivity.datatemple /

private String validDirectory( String baseDirectory, String addOn ) {

    if ( baseDirectory + addOn ISN'T A VALID DIRECTORY ) {
        Toast(error);
        return baseDirectory;
    }
    else {
        // ex: /data/data/org.hacktivity.datatemple/../org.hacktivity.datatemple/ => /data/data/org.hacktivity.datatemple
        return TRIMMED VERSION OF baseDirectory + addOn;
    }

}

1 个答案:

答案 0 :(得分:2)

您正在搜索canonicalPath对象的File。使用getCaconicalPath()getCanonocalFile()消除相对路径元素:

File baseDir = new File(baseDirectory);
File addOnDir = new File(baseDir, addOn);

String canonicalPath = addOnDir.getCanonicalPath();

System.out.println(canonicalPath); // /data/data/org.hacktivity.datatemple