我有一个java.io.File
对象,但我不知道它对应于哪个对象。使用该isDirectory()
方法我们可以检查它是否是一个目录。普通文件夹和驱动器在调用时都返回 trueisDirectory()
我如何检查File
对象是驱动器还是我的电脑?
我有一个java.io.File
对象,但我不知道它对应于哪个对象。使用该isDirectory()
方法我们可以检查它是否是一个目录。普通文件夹和驱动器在调用时都返回 trueisDirectory()
我如何检查File
对象是驱动器还是我的电脑?
有两种方法,一种是
File f=new File("C:\\");
if(f.toPath().getNameCount()==0) System.out.println(f+" is root");
getNameCount()
方法返回编号。给定的根File
toPath()
方法返回java.nio.file.Path
对象f
。还有一件事,你甚至不需要在java.nio.file
这里导入包。
例如,如果f=new File("C:\\Program Files");
then 这返回 1,因为只有一个根是C:\\
驱动器的名称计数为 0
我的电脑不能表示为 File
对象。如果你尝试这样做,
File f=new File("C:\\").getParentFile();
你得到null
另一种方法是(我不推荐)。在这里,我们将不得不使用一个循环,从性能的角度来看,它会降低性能,同时这也很长。
File[] files=File.listRoots();
for(int i=0;i<files.length;i++)
{
if(files[i].equals(f)){
System.out.println(f+" is root");
break;
}
}