1、遍历所有目录
getName与getPath的区别
获得所有文件目录的两种方法
public static void listAll(String path) {
File f = new File(path);
//先判断是不是文件
if (f.isFile()) {
System.out.println(f.getPath());
} else {
System.out.println(f.getPath());
File[] fileArray = f.listFiles();
for (File itemFile : fileArray) {
// 递归
listAll(itemFile.getPath());
}
}
}
public static void listAll(String path){
//直接listfile,推荐用这种
File f=new File(path);
File[] fArray=f.listFiles();
for(File fitem:fArray){
if(fitem.isDirectory()){
System.out.println(fitem.getName());
listAll(fitem.getPath());
}else{
System.out.println(fitem.getName());
}
}
}
筛选文件的几种方法
1、isFile()和isDirectory()
1、自己判断
2、用接口implements 实现FilenameFilter()
3、用内部类
4、用匿名内部类
/**
* 用FilenameFilter接口 推荐
* @param path
* @param suffix
*/
public static void listJpg(String path,String suffix){
File f = new File(path);
if(f.isFile()){
if(f.getName().endsWith(suffix)){
System.out.println(f.getPath());
}
System.out.println(f.getName()+"只是一个文件");
}else{
File[] fileArray=f.listFiles(new MyFileFilter(suffix));
for(File item:fileArray){
System.out.println(item.getPath());
/*打印此目录下包含此后缀的所有文件
else{
File[] fileArray=f.listFiles();
for(File item:fileArray){
if(item.getName().endsWith(suffix))
System.out.println(item.getPath());
listJpg(item.getPath(),suffix)
}
}
*/
}
//自己判断
public static void listJpg2(String path,String suffix){
File f = new File(path);
if(f.isFile()){
if(f.getName().endsWith(suffix)){
System.out.println(f.getPath());
}
System.out.println(f.getName()+"只是一个文件");
}else{
File[] fileArray=f.listFiles();
for(File item:fileArray){
if(item.getName().endsWith(suffix)){
System.out.println(item.getPath());
}
}
}
}
//内部类
public static void listJpg3(String path,String suffix){
File f = new File(path);
if(f.isFile()){
if(f.getName().endsWith(suffix)){
System.out.println(f.getPath());
}
System.out.println(f.getName()+"只是一个文件");
}else{
File[] fileArray=f.listFiles(new InnerFilter(suffix));
for(File item:fileArray){
System.out.println(item.getPath());
}
}
}
//匿名内部类
public static void listJpg4(String path,final String suffix){
File f = new File(path);
if(f.isFile()){
if(f.getName().endsWith(suffix)){
System.out.println(f.getPath());
}
System.out.println(f.getName()+"只是一个文件");
}else{
File[] fileArray=f.listFiles(new FilenameFilter(){
@Override
public boolean accept(File dir, String name) {
if(name.endsWith(suffix)){
return true;
}
return false;
}
});//以上为匿名内部类
for(File item:fileArray){
System.out.println(item.getPath());
}
}
}
public static void main(String args[]) {
listAll("E:\\超市");
// listJpg4("E:\\fileDemo2",".jpg");
}
//内部类
static class InnerFilter implements FilenameFilter {
private String suffer;
public InnerFilter(String suffer){
this.suffer=suffer;
}
@Override
public boolean accept(File dir, String name) {
if(name.endsWith(suffer)){
return true;
}
return false;
}
}
}
import java.io.File;
import java.io.FilenameFilter;
//接口实现
public class FileFilter1 implements FilenameFilter{
private String suffer;
public FileFilter1(String suffer){
this.suffer=suffer;
}
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
if(name.endsWith(suffer)){
return(true);
}
return false;
}
}