ファイルの下のすべてのサブフォルダとファイル(サブフォルダの下のフォルダとファイルを含む)を1つのファイルパスに基づいて印刷するパスが1つのファイルを指す場合はそのファイル名を印刷するパスが存在しないファイルを指す場合は印刷する:NO FILE


1つのファイルパスに基づいて、ファイルの下にあるすべてのサブフォルダとファイル(サブフォルダの下にあるフォルダとファイルを含む)を印刷します.
 
import java.io.*;
/**
 
          ,      : 
                               (              ) 
                    
                 :”(NO FILE)” 
*      :1.           :
*      、         
*      、        ,     NO FILE
*      、    ,       ,     ,      
*      、                  ,      ,                    
*/
public class ListFileRecursion{

    public static void listFile(String filePath){
        try{
        	//1.         
	        File file = new File(filePath);
	        //2.        
	    	if(file.exists()){
	        	//3.                  
	        	if(file.isFile()){
	            	System.out.println(file.getName());
	            //4.                             
	            }else if(file.isDirectory()){
	            	System.out.println(file.toString());
	            	File[] fileArray = file.listFiles();
	            	//          
	            	//System.out.println(" includes "+ fileArray.length +" files/folders directly.");
	            	    //            
	            	    for(File subFile : fileArray){
	            		    listFile(subFile.toString());
	            	    }
	            }
	        }else if(!file.isDirectory()){
	        	//          ,      
	        	System.out.println(file.toString());
	        }else{
	        	//               :”(NO FILE)”
	        	System.out.println("NO FILE");
	        }        
    	
        }catch(Exception e){
        	e.printStackTrace();
        }
   }
   
   public static void main(String args[]){
	   //          ‘\’,java         ,            ‘\\’。
       listFile("C:\\oracle");
       
   }
}