我没有看到任何明显的问题,但我想知道在我编写构建文件时是否可以使用/
而不是File.separator
。使用File.separator
会使读取某些路径变得非常困难。例如:
dependsDir = "${buildDir}${File.separator}depends"
VS
dependsDir = "${buildDir}/depends"
答案 0 :(得分:22)
正斜杠(/)在Windows上是合法的path separator,也是Unix(包括Linux和Mac OSX)。因此,除非您需要在其他操作系统上运行构建,否则它应该不是问题。
答案 1 :(得分:5)
Gradle在很大程度上只依靠java.io.File
来执行所有与路径相关的操作,而后者又在Windows和Linux上正常处理/
。因此,在Gradle API中使用/
不太可能导致任何问题。
我在一个在Windows和Linux上运行的相当大的项目中使用/
,到目前为止我没有遇到任何问题。希望这会有所帮助。
答案 2 :(得分:1)
在文件类
中 public static final String separator = "" + separatorChar;
其中separatorChar是系统相关的默认名称分隔符。这个领域是
初始化为包含系统值的第一个字符
财产file.separator
。在UNIX系统上的价值
字段为'/'
;在Microsoft Windows系统上,它是'\'
。
和separatorChar由
static private FileSystem fs = FileSystem.getFileSystem();
public static final char separatorChar = fs.getSeparator();
对于基于操作系统的用户,使用File.separator时将更改分隔符
通过在代码中使用/
,它将不支持其他操作系统。
答案 3 :(得分:0)
需要时,使用平台无关常量 endIndex
例如。 File.separator
。