用java 编写一个程序,在命令行中以树状结构展现特定的文件夹及其子文件(夹)!
1个回答
推荐于2017-12-16
展开全部
import java.io.*;
class testfilelist {
public static void main(String[] args) {
String separator = File.separator;//与系统有关的默认名称分隔符,出于方便考虑,它被表示为一个字符串。
String filename = "myfile.txt";//文件名
String directory = "mydir1" + separator + "mydir2"+ separator +"mydir3";//mydir1\mydir2\mydir3\myfile.txt
crate(directory,filename);//给出个方法创建文件 if--有就创建 else--就输出文件名和大小
File f=new File("D:/My Documents/java12");//指定文件位置
System.out.println(f.getName());//打印在这个文件下的文件夹;
tree(f,1);//方法!进入子文件夹中 并打印子文件名
}
private static void tree(File f,int level) {
String preStr="";//缩进量
for(int i=0;i<level;i++) {
if(i==level-1)
preStr=preStr+"┗";
else
preStr=preStr+"*";//级别 - 代表这个目下下的子文件夹
}
File[] childs=f.listFiles();//返回一个抽象路径名数组,这些路径名表示此抽象路径名所表示目录中的文件
for(int i=0;i<childs.length;i++)
{
System.out.println(preStr+childs[i].getName());//打印子文件的名字
if(childs[i].isDirectory()) //测试此抽象路径名表示的文件是否是一个目录
{
tree(childs[i],level+1);
}//如果子目录下还有子目录,递归子目录调用此方法
}
}
public static void crate(String di,String fn){
File f = new File(di, fn);
if (f.exists())//测试此抽象路径名表示的文件或目录是否存在
{
System.out.println("文件名:" + f.getAbsolutePath());
System.out.println("文件大小:" + f.length());
} else {
f.getParentFile().mkdirs();// 返回此抽象路径名的父路径名的抽象路径名,如果此路径名没有指定父目录,则返回 null .mkdirs()//创建此抽象路径名指定的目录
try {
f.createNewFile();//当且仅当不存在具有此抽象路径名指定的名称的文件时,原子地创建由此抽象路径名指定的一个新的空文件
} catch (IOException e) {
e.printStackTrace();
}
}
}
} 应该满足楼主的意思!嘿嘿
class testfilelist {
public static void main(String[] args) {
String separator = File.separator;//与系统有关的默认名称分隔符,出于方便考虑,它被表示为一个字符串。
String filename = "myfile.txt";//文件名
String directory = "mydir1" + separator + "mydir2"+ separator +"mydir3";//mydir1\mydir2\mydir3\myfile.txt
crate(directory,filename);//给出个方法创建文件 if--有就创建 else--就输出文件名和大小
File f=new File("D:/My Documents/java12");//指定文件位置
System.out.println(f.getName());//打印在这个文件下的文件夹;
tree(f,1);//方法!进入子文件夹中 并打印子文件名
}
private static void tree(File f,int level) {
String preStr="";//缩进量
for(int i=0;i<level;i++) {
if(i==level-1)
preStr=preStr+"┗";
else
preStr=preStr+"*";//级别 - 代表这个目下下的子文件夹
}
File[] childs=f.listFiles();//返回一个抽象路径名数组,这些路径名表示此抽象路径名所表示目录中的文件
for(int i=0;i<childs.length;i++)
{
System.out.println(preStr+childs[i].getName());//打印子文件的名字
if(childs[i].isDirectory()) //测试此抽象路径名表示的文件是否是一个目录
{
tree(childs[i],level+1);
}//如果子目录下还有子目录,递归子目录调用此方法
}
}
public static void crate(String di,String fn){
File f = new File(di, fn);
if (f.exists())//测试此抽象路径名表示的文件或目录是否存在
{
System.out.println("文件名:" + f.getAbsolutePath());
System.out.println("文件大小:" + f.length());
} else {
f.getParentFile().mkdirs();// 返回此抽象路径名的父路径名的抽象路径名,如果此路径名没有指定父目录,则返回 null .mkdirs()//创建此抽象路径名指定的目录
try {
f.createNewFile();//当且仅当不存在具有此抽象路径名指定的名称的文件时,原子地创建由此抽象路径名指定的一个新的空文件
} catch (IOException e) {
e.printStackTrace();
}
}
}
} 应该满足楼主的意思!嘿嘿
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询