我想实现统计文件各目录个数,并将文件按后缀名进行分组排序!!! 可下面的代码不给力 ,不知道为什么实现不了?麻烦大家帮我看一下!!!import java.io.File;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Iterator;
import java.util.SortedSet;
public class GetFileCatalog {
public static long documentNum = 0;
public static long directoryNum = 0;
public static void main(String[] args) {
File file = new File("D:\\跆拳道");
print(file);
String[] document = file.list();
Arrays.sort(document, new Comparator() {
public int compare(Object arg0, Object arg1) { String str1 = (String) arg0;
String str2 = (String) arg1; if ((str1.indexOf(".")+1) > (str2.indexOf(".")+1)) {
return 1;
} return 0;
} });
for (int i = 0; i < document.length; i++)
System.out.println(document[i]);
System.out.println("文件的个数:"+documentNum);
System.out.println("目录的个数:"+directoryNum);
}
private static void print(File file) {
if(file.isDirectory()) {
System.out.println("Directory name:"+file.getName()+",last modified time is :"+file.lastModified());
directoryNum++;
File[] files = file.listFiles();
for(int i = 0;i < files.length;i++) {
print(files[i]);
}
}else {
System.out.println("File name:"+file.getName()+",last modified time is :"+file.lastModified());
documentNum++;
}
}
}
import java.util.Arrays;
import java.util.Comparator;
import java.util.Iterator;
import java.util.SortedSet;
public class GetFileCatalog {
public static long documentNum = 0;
public static long directoryNum = 0;
public static void main(String[] args) {
File file = new File("D:\\跆拳道");
print(file);
String[] document = file.list();
Arrays.sort(document, new Comparator() {
public int compare(Object arg0, Object arg1) { String str1 = (String) arg0;
String str2 = (String) arg1; if ((str1.indexOf(".")+1) > (str2.indexOf(".")+1)) {
return 1;
} return 0;
} });
for (int i = 0; i < document.length; i++)
System.out.println(document[i]);
System.out.println("文件的个数:"+documentNum);
System.out.println("目录的个数:"+directoryNum);
}
private static void print(File file) {
if(file.isDirectory()) {
System.out.println("Directory name:"+file.getName()+",last modified time is :"+file.lastModified());
directoryNum++;
File[] files = file.listFiles();
for(int i = 0;i < files.length;i++) {
print(files[i]);
}
}else {
System.out.println("File name:"+file.getName()+",last modified time is :"+file.lastModified());
documentNum++;
}
}
}
解决方案 »
- jsp使用cookie实现记住密码的功能
- 怎么设定setOneTouchExpandable只对一面有效;或者JSplitPane不改变组件大小?
- 初学者学习集合类过程中的问题
- 谁能给个API测试的代码,最好复杂点,或者相关文档也好,java的 100分
- 新手:关于java开发环境的安装问题?
- ::java邮件问题,不能发出,大家来看看!::
- java的时间问题,在线等待!
- java -classpath *1.jar;*2.jar 其中*1.jar与*2.jar之间是分号还是冒号,还是其他符号,我的系统是win2000
- Java盲请教。[给分]
- JBUILDER使用心得交流
- 查询当前操作系统已开启的进程
- 关于Java Socket从输入流中read时阻塞
File name:新建 BMP 图像.bmp,last modified time is :1293066834962
File name:新建 Microsoft Visio 绘图.vsd,last modified time is :1293066830224
File name:新建 文本文档 (2).txt,last modified time is :1293066826029
File name:新建 文本文档.txt,last modified time is :1293066822642
新建 文本文档.txt
文件的个数:4
目录的个数:1
新建 BMP 图像.bmp
文件的个数:4
目录的个数:1
新建 文本文档 (2).txt
文件的个数:4
目录的个数:1
新建 Microsoft Visio 绘图.vsd
文件的个数:4
目录的个数:1
import java.io.File;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Collections;
public class GetFileCatalog {
public static long documentNum = 0;
public static long directoryNum = 0;
//保存文件名,每个目录下按后缀排序
public static List<String> result = new ArrayList<String>();
public static void main(String[] args) {
File file = new File("D:\\跆拳道"); statistics(file);
System.out.println("文件的个数:" + documentNum);
System.out.println("目录的个数:" + directoryNum);
Collections.sort(result, new Comparator<String>(){
public int compare(String o1, String o2) {
String str1 = o1.substring(o1.lastIndexOf("."));
String str2 = o2.substring(o2.lastIndexOf("."));
return str1.compareToIgnoreCase(str2);
}
});
//打印文件名
for(String s : result) {
System.out.println(s);
}
} /**
* 统计文件,并存入result
* @param file
*/
private static void statistics(File file) {
if (file.isDirectory()) {
directoryNum++;
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
statistics(files[i]);
}
} else {
result.add(file.getName());
documentNum++;
}
}
}
while(i.hasNext()) {
String str = (String)i.next();
str = str.substring(str.lastIndexOf("."));
if(str.equalsIgnoreCase("doc")) {
doc.add(str);
System.out.println("OK");
}
}
for(String s:doc) {
System.out.println(s);
}if(str.equalsIgnoreCase("doc")) 这句没有执行 是什么原因呀?