2016-08-23 8 views
0

こんにちは私の英語は申し訳ありませんが、ここでは少し助けが必要ですが、これはあなたにとっては簡単でなければなりませんが、私の人生にとってはわかりません。私がやろうとしているのは、ディスクパーティションをリストし、その中のディレクトリとファイルのすべての名前をリストすることです。私はハードディスクdivitionsおよびそれらのファイルの最初の行をリストしてもらう。これによりディスクパーティションからのファイル名の印刷

File[] root= File.listRoots();   

System.out.println("Se encontraron " + root.length + " Particiones de Disco "); 

for(int i = 0 ; i < root.length ; i++){ 
    System.out.println(root[i].toString() + " existe= " + root[i].exists()); 
    if(root[i].exists()==true){ 
     System.out.println("Espacio Total: "+ root[i].getTotalSpace()); 
     System.out.println("Espacio Libre: "+ root[i].getFreeSpace()); 

     String[] listaDeArchivos = root[i].list(); 
     for(String lista:listaDeArchivos){ 
      System.out.println(lista); 
     } 
    } 
} 

、しかし、私は、ファイル内でのすべての、すべてのファイルを一覧表示するサイクルが必要になります。これまでのところ私はこれに達しています。

+0

あなたの質問はありますか?何が問題になっていますか? –

+0

ハードディスクのすべてのディレクトリとファイルの名前を印刷したい – user3362366

+0

ようこそスタックオーバーフロー。あなたはあなたの質問を改善することができます。 [最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)をお読みください。あなたのコードが何も特別な問題であなたの正確な問題を示すとき、あなたはボランティアしてあなたを助ける人たちに敬意を表しています。さらに、読みやすくするためにコードを書式設定し、スクロールを排除してください。 – zhon

答えて

0

すべてのディレクトリと各ディレクトリ内のすべてのファイルをリストする再帰関数を設計する必要があります。

以下のコードでは、この目的のために機能listStructureが使用されています。
コールあなたfor loop

for(String lista:listaDeArchivos){ 
     System.out.println(lista); 
     listStructure(lista); 
     } 

関数の内部からこの関数は、ディレクトリ構造をリストします。

public void listStructure(String fileName) 
{ 
File file=new File(fileName); 
if(!file.exists()) 
{ 
System.out.println(fileName+" doesn't exists"); 
return; 
} 
if(!file.isDirectory())//check whether it's a directory or not 
{ 
System.out.println(fileName); 
return; 
} 
String files[]=file.list(); //if it's a directory then iterate through the directory 
for(int i=0;i<files.length;i++) 
{ 
listStructure(fileName+File.separator+files[i]);//recursively calling the function 
} 
}