1

私はjava.io.Fileオブジェクトを持っていますが、それがどれに対応するのかわかりません。メソッドを使用して、isDirectory()それがディレクトリかどうかを確認できます。通常のフォルダとドライブは両方とも、呼び出し時に true を返しますisDirectory()

Fileオブジェクトがドライブかマイ コンピュータかを確認するにはどうすればよいですか?

4

1 に答える 1

5

2つの方法があり、1つは

File f=new File("C:\\");
if(f.toPath().getNameCount()==0) System.out.println(f+" is root");

getNameCount()メソッドは番号を返します。与えられた根のFile

toPath()メソッドは のjava.nio.file.Pathオブジェクトを返しますfjava.nio.fileもう1つ、ここでパッケージをインポートする必要さえありません。

たとえば、f=new File("C:\\Program Files");ルートが 1 つしかないため、これは 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;
  }
}
于 2013-07-13T14:28:25.117 に答える