2013-07-13 55 views
1

我有一个java.io.File对象,我不知道它与哪个对应。使用isDirectory()方法,我们可以检查它是否是一个目录。一个普通的文件夹和一个驱动器都会在拨打isDirectory()后返回true如何知道文件是代表根还是我的电脑?

如何检查File对象是驱动器还是我的电脑?

回答

3

有两种方式,一种是

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");那么这因为只有一个根是C:\\

驱动得到的名称计数返回1 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; 
    } 
} 
相关问题