Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检测Java文件是文件还是文件夹(在Scala中)?_Java_Scala - Fatal编程技术网

如何检测Java文件是文件还是文件夹(在Scala中)?

如何检测Java文件是文件还是文件夹(在Scala中)?,java,scala,Java,Scala,我在Scala中有以下代码,它返回目录和文件树 import java.nio._ import java.nio.file._ import collection.JavaConverters._ object TestFileWalk extends App { val dir = FileSystems.getDefault.getPath("c://app-files") Files.walk(dir).iterator().asScala.foreach(println)

我在Scala中有以下代码,它返回目录和文件树

import java.nio._
import java.nio.file._
import collection.JavaConverters._

object TestFileWalk extends App {
  val dir = FileSystems.getDefault.getPath("c://app-files") 
  Files.walk(dir).iterator().asScala.foreach(println)
}
运行上述代码将返回:

c:\app-files
c:\app-files\csv
c:\app-files\csv\10
c:\app-files\csv\10\Book2.csv
c:\app-files\csv\11
c:\app-files\csv\11\Book3.txt
c:\app-files\csv\12
c:\app-files\csv\9
c:\app-files\csv\9\Book1.csv
c:\app-files\csvtemp
c:\app-files\csvtemp\user1
c:\app-files\csvtemp\user1\script 2016-11-04.sql
c:\app-files\This is a folder with Uppercase
c:\app-files\This is a folder with Uppercase\File in the folder with Uppercase.csv
如您所见,有些条目是文件夹名,而有些条目是文件扩展名

如何通过编程知道条目是文件还是文件夹?我看了看,但想不出来。

那个电话

val dir = FileSystems.getDefault.getPath("c://app-files") 
返回路径对象。有关详细信息,请参见

Path类提供了一个方法[toFile][2];返回一个文件对象。 从此处开始:File类包含[isDirectory][2]

因此:

给你你想要的

除此之外:

Files.walk(dir).iterator().asScala.foreach(println)

迭代器生成迭代器;同样,这里有一个路径对象;您可以将其转换为文件;文件知道它是否是目录

_u.isDirectory,u.isFile可能会工作。这不编译文件。walkdir.iterator.asScala.foreachprintln_uu.isDirectory首先可能使用PathtoFilevoid从中获取文件,然后使用isDirectorythanks作为提示,第二个选项使用此代码文件。walkdir.iterator.asScala.foreach p=>printlnp.toFile.isDirectory++p
Files.walk(dir).iterator().asScala.foreach(println)