【发布时间】:2014-02-06 06:20:54
【问题描述】:
如何检查 Scala 中是否存在类似于 Python 的路径/文件?下面是一个例子:
os.path.exists("/home")
Out[4]: True
【问题讨论】:
标签: scala
如何检查 Scala 中是否存在类似于 Python 的路径/文件?下面是一个例子:
os.path.exists("/home")
Out[4]: True
【问题讨论】:
标签: scala
从 Java 7 开始,更好的方法是
scala> import java.nio.file.{Paths, Files}
import java.nio.file.{Paths, Files}
scala> Files.exists(Paths.get("/tmp"))
res0: Boolean = true
【讨论】:
File API。所以,首先,你应该更喜欢它,因为它会帮助旧的 API 消亡。其次,NIO.2 更强大。例如,使用此 API,您可以选择如何处理符号链接。或者您可以检查(使用相同的 Files.exists() 调用)另一个文件系统(例如 zip 存档)中是否存在路径。
/tmp 中没有subfolder 目录。我个人觉得这很合乎逻辑)
好吧,对不起,我找到了自己问题的答案:
scala> new java.io.File("/tmp").exists
res0: Boolean = true
【讨论】:
这是一个老问题,但我仍然需要它需要一些更新。您应该使用isFile 或isRegularFile 而不是exists,因为exists 不考虑是文件还是目录,如果存在同名目录,可能会误导应用程序。
使用 java.io
new java.io.File("/tmp/sample.txt").isFile
使用 java.nio
java.nio.file.Files.isRegularFile(java.nio.file.Paths.get("/tmp/sample.txt"))
【讨论】:
scala.reflect.io.File("/tmp/sample.txt").exists
同样有效。
【讨论】: