import java.io.File;
/**
* 运用递归读取所有磁盘数据(文件夹名称和文件名称),形成树桩结构
*
*/
public class ReadCPData {
private static int count =-1;
private static String dqmc ="";
private static boolean bln = true;
/**
* @param args
*/
public static void main(String[] args) {
getCPData();
}
private static void getCPData(){
File file = new File("D:\\");
File[] files = file.listFiles();
System.out.println("一级节点--->"+file.toString());
for (int i = 0; i < files.length; i++) {
count++;
bln = true;
if(files[i].isDirectory()){
System.out.print(getLevel(files[i].toString())+"级节点");
for (int j = 0; j < getLevel(files[i].toString()); j++) {
System.out.print("---");
}
System.out.println("--->"+files[i]);
bln = false;
getTreeChild(files[i].toString());
}else{
System.out.print(getLevel(files[i].toString())+"级节点"+files[i]);
for (int j = 0; j < getLevel(files[i].toString()); j++) {
System.out.print("---");
}
System.out.println("--->"+files[i]);
}
}
}
/**
* 运用递归得到节点数据(文件夹名称和文件名称)
* @param parentPath
*/
private static void getTreeChild(String parentPath){
File file = new File(parentPath);
if(file!=null){
File[] files = file.listFiles();
if(files!=null){
if((!dqmc.equals(parentPath) || dqmc!=parentPath)&& bln!=false){
count++;
System.out.print(getLevel(parentPath)+"级节点");
for (int j = 0; j < getLevel(parentPath); j++) {
System.out.print("---");
}
System.out.println("--->"+parentPath);
dqmc=parentPath;
}
for (int i = 0; i < files.length; i++) {
if(files[i].isDirectory()){
getTreeChild(files[i].toString());
}else{
count++;
System.out.print(getLevel(files[i].toString())+"级节点");
for (int j = 0; j < getLevel(files[i].toString()); j++) {
System.out.print("---");
}
System.out.println("--->"+files[i]);
}
}
}
}
}
/**
* 判断节点等级
* @param string
* @return
*/
private static int getLevel(String string){
int c = 0;
for (int i = 0; i < string.length(); i++) {
if(string.substring(i,i+1).equals("\\")){
c++;
}
}
return c;
}
}
/**
* 运用递归读取所有磁盘数据(文件夹名称和文件名称),形成树桩结构
*
*/
public class ReadCPData {
private static int count =-1;
private static String dqmc ="";
private static boolean bln = true;
/**
* @param args
*/
public static void main(String[] args) {
getCPData();
}
private static void getCPData(){
File file = new File("D:\\");
File[] files = file.listFiles();
System.out.println("一级节点--->"+file.toString());
for (int i = 0; i < files.length; i++) {
count++;
bln = true;
if(files[i].isDirectory()){
System.out.print(getLevel(files[i].toString())+"级节点");
for (int j = 0; j < getLevel(files[i].toString()); j++) {
System.out.print("---");
}
System.out.println("--->"+files[i]);
bln = false;
getTreeChild(files[i].toString());
}else{
System.out.print(getLevel(files[i].toString())+"级节点"+files[i]);
for (int j = 0; j < getLevel(files[i].toString()); j++) {
System.out.print("---");
}
System.out.println("--->"+files[i]);
}
}
}
/**
* 运用递归得到节点数据(文件夹名称和文件名称)
* @param parentPath
*/
private static void getTreeChild(String parentPath){
File file = new File(parentPath);
if(file!=null){
File[] files = file.listFiles();
if(files!=null){
if((!dqmc.equals(parentPath) || dqmc!=parentPath)&& bln!=false){
count++;
System.out.print(getLevel(parentPath)+"级节点");
for (int j = 0; j < getLevel(parentPath); j++) {
System.out.print("---");
}
System.out.println("--->"+parentPath);
dqmc=parentPath;
}
for (int i = 0; i < files.length; i++) {
if(files[i].isDirectory()){
getTreeChild(files[i].toString());
}else{
count++;
System.out.print(getLevel(files[i].toString())+"级节点");
for (int j = 0; j < getLevel(files[i].toString()); j++) {
System.out.print("---");
}
System.out.println("--->"+files[i]);
}
}
}
}
}
/**
* 判断节点等级
* @param string
* @return
*/
private static int getLevel(String string){
int c = 0;
for (int i = 0; i < string.length(); i++) {
if(string.substring(i,i+1).equals("\\")){
c++;
}
}
return c;
}
}