題目
查看File類的API文檔,使用該類實現一個類FileList,它提供兩個靜態方法:1)printContentsInOneDirectory:能夠將輸入參數path所指定的本地磁盤路徑下的所有目錄和文件的名稱(指明是目錄還是文件,格式見下圖)打印出來;2)readFileAndDirectory:能夠將輸入參數path所指定的本地磁盤路徑下的所有目錄(包含子目錄)和文件的名稱(指明是目錄還是文件,格式見下圖)以層次化結構打印出來。例如,某個目錄下面有子目錄a和文件Teacher.class,目錄a下面有子目錄b(下面有文件Teacher.java)和c(下面有文件Test.java和Test.class)以及文件1.txt,將該目錄對應的路徑作爲輸入參數調用該方法,程序的輸出如下圖所示。
答案
import java.io.File;
public class FileList
{
public static void printContentsInOneDirectory(String path)
{
File f=new File(path);
File []ff=f.listFiles();
for(int i=0;i<ff.length;i++)
{
if(ff[i].isDirectory()==true)
{
System.out.println("[目錄]"+ff[i].getName());
}
else if(ff[i].isFile()==true)
{
System.out.println("[文件]"+ff[i].getName());
}
}
}
static public void readFileAndDirectory(String path,int num)
{
File f=new File(path);
File []ff=f.listFiles();
for(int i=0;i<ff.length;i++)
{
for(int j=0;j<num;j++)
{
System.out.print("-");
}
if(ff[i].isFile())
{
System.out.println("[文件]"+ff[i].getName());
}
else if(ff[i].isDirectory())
{
System.out.println("[目錄]"+ff[i].getName());
readFileAndDirectory(ff[i].getAbsolutePath(),num+2);
}
}
}
public static void main(String[] args)
{
printContentsInOneDirectory("E:\\workplace\\DUQUWENJIAN3");
readFileAndDirectory("E:\\\\workplace\\\\DUQUWENJIAN3",0);
}
}