getNameCount()实际上是多少?

时间:2014-06-17 13:18:52

标签: java path filenames

我的问题有两个部分 - 第一,确切的标题是什么 - 实际计算的Path.getNameCount()方法是什么?当你在Eclipse中选择一个方法时,我读了它附带的小弹出信息,我认为这是一个合适的用法。我使用它创建的这个方法在运行时返回5作为int。其次,我尝试做的是返回目标目录中有多少文件,以便我可以运行另一种方法来检索文件名适当的次数。如果getNameCount()方法不适合此函数,您是否对如何完成相同目的有任何建议?

//Global Variable for location of directory
Path dir = FileSystems.get("C:\\Users\\Heather\\Desktop\\Testing\\Testing2");
//Method for collecting the count of the files in the target directory.
public int Count()
{
    int files=0;
    files = dir.getNameCount();
    return files;
}
}

3 个答案:

答案 0 :(得分:4)

getNameCount()返回路径中的元素数(子目录)。例如,在Windows中,“C:”为0,对于“C:\ a \ b \ c” - 3,在类Unix系统中,root(“/”)将为0级({ {1}})和“/ home / user / abacaba”将位于第3级,请参阅javadoc

要列出目录,您应该使用getNameCount() == 0javadoc - 这里给出了完美的示例。

答案 1 :(得分:3)

作为documentedgetNameCount()返回:

  

路径中元素的数量,如果此路径仅表示根组件,则为0

因此,在您的情况下,元素为"Users""Heather""Desktop""Testing""Testing2" - 目录中文件的名称。

要列出目录中的文件,您可以使用Files.list(Path)(在Java 8+中)或Files.newDirectoryStream(Path)(在Java 7+中)。或者您可以转换为File并使用"旧学校" File.listFiles()方法等。

答案 2 :(得分:1)

它返回路径中的元素数。

检查Oracle Docs

实施例: -

Path path = Paths.get("C:", "tutorial/Java/JavaFX", "Topic.txt");

System.out.println(path.getNameCount());

返回:

4