【问题标题】:After created a file it got extra './ ' on path创建文件后,路径上有额外的“./”
【发布时间】:2020-11-27 12:00:35
【问题描述】:

我创建了一个空的 File 并存储从 jar 中提取的值/内容。 jar 在 linux 上运行。

String filename ="base_script";
File targetFile = new File( filename + ".sh");
String pathStr=null;

//empty file 
targetFile.createNewFile();

if(targetFile.exists()) {
        InputStream link = (getClass().getResourceAsStream(this.userScriptPath));
        Files.copy(link,
                   targetFile.getAbsoluteFile().toPath(),
                   java.nio.file.StandardCopyOption.REPLACE_EXISTING);
        pathStr = targetFile.getAbsolutePath();
}

这是文件路径./base_script.sh

这是文件绝对路径apps/MyApps/./base_script.sh

我的问题是为什么在绝对路径上有一个额外的./

【问题讨论】:

  • 相对路径首先解析为 cwd ./ ; relative 的绝对路径前缀,因此包括 ./
  • 我在运行它时收到了no such file or directoryerror。如果没有./ 就可以了

标签: java linux file path


【解决方案1】:

不清楚为什么在定义没有它的值时名称中有“./”。无论如何,这将解析到真实姓名的路径,路径中没有任何“./”或“..”:

pathStr = targetFile.toPath().toRealPath().toString()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    相关资源
    最近更新 更多