实现FilenameFilter接口
import java.io.File; import java.io.FilenameFilter; /** * 过滤指定的文件 * 可以在遍历文件时,选择需要过滤的文件;弹出对话框选择文件时,过滤文件 * @author * */ public class FileFilter implements FilenameFilter { private boolean isDoc(String fileName) { if(fileName.endsWith(".docx")) { return false; } return true; } @Override public boolean accept(File dir, String name) { // TODO Auto-generated method stub return isDoc(name); } }
测试类
import java.io.File; public class TestFilterFile { public static void main(String[] args) { File file =new File("D:"+File.separator+"developer"); File[] files=file.listFiles(new FileFilter()); for (File file2 : files) { System.out.println(file2.getName()); } } }
import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.commons.lang3.StringUtils; /** * 用线程监控文件目录的变化 * * @author 时间 2013-4-11 下午10:28:05 * @version 1.0 </br> */ public class FilesMonitor implements Runnable { private String filePath = "D:\\testFile"; /** * map : 存放目录中文件,key:文件名称+最后修改时间 value:File对象 */ private static Map<String, File> map = new HashMap<String, File>(); /* * (non-Javadoc) * * @see java.lang.Runnable#run() */ public void run() { while( true ) { try { Thread.sleep( 3000 ); fileMonitor(); } catch( Exception e ) { // TODO: handle exception } } } public void fileMonitor() { File[] files = getFiles( filePath, null ); if( files != null && files.length > 0 ) { String fName = ""; // if( files.length != map.size() ) // { if( map.size() == 0 ) { for( File file : files ) { System.out.println( file.lastModified() ); fName = file.getName() + file.lastModified(); map.put( fName, file ); System.out.println( "新增文件: " + fName ); } } else { if( map.size() > files.length ) { List<String> removeName = new ArrayList<String>(); Iterator<String> iter = map.keySet().iterator(); int j = 0; while( iter.hasNext() ) { String key = iter.next(); if( key != null && key.length() > 0 ) { for( File file : files ) { fName = file.getName() + file.lastModified(); if( fName.equals( key ) ) { j = 1; break; } } if( j != 1 ) { removeName.add( key ); map.remove( key ); } j = 0; } if( removeName.size() > 0 ) { for( String item : removeName ) { System.out.println( "减少文件: " + item ); } } } } else { for( File file : files ) { fName = file.getName() + file.lastModified(); if( !map.containsKey( fName ) ) { map.put( fName, file ); System.out.println( "新增加的文件: " + fName ); } } } } // } // else // { // map.clear(); // for( File file : files ) // { // fName = file.getName() + file.lastModified(); // map.put( fName, file ); // } // } // System.out.println( "此缓存中文件的个数: " + map.size() ); } } /** * 获取文件 * * @author 时间 2013-4-11 下午11:31:49 * @param filePath * 文件目录 * @param fileName * 文件名 * @return */ public File[] getFiles( String filePath, String fileName ) { File[] files = null; if( StringUtils.isEmpty( fileName ) ) { File doc = new File( filePath ); if( doc.isDirectory() ) { String[] fileNameArr = doc.list(); if( fileNameArr.length > 0 ) { files = new File[ fileNameArr.length ]; for( int i = 0; i < fileNameArr.length; i++ ) { fileName = fileNameArr[ i ]; String fileAbspath = filePath + File.separator + fileName; File regInfoFile = new File( fileAbspath ); files[ i ] = regInfoFile; } } } } else { String path = filePath + File.separator + fileName; File doc = new File( path ); if( doc.isFile() ) { files = new File[ 1 ]; files[ 0 ] = doc; } } return files; } public void show() { FilesMonitor t = new FilesMonitor(); Thread thread = new Thread( t ); thread.setName( "eshore" ); thread.start(); } public static void main( String[] args ) { FilesMonitor t = new FilesMonitor(); t.show(); } }
对文件夹的监控,我记得好像有FileMonitor,应该是第三方jar包,要实现一个接口,里面有增加、删除、更新文件等方法的,自己还写过例子,但是忘记了,怎么也找不到了,有知道的同学请知会一下。
相关推荐
FilenameFilter 接口 过滤指定类型的文件,下面的程序就是过滤出D://zhang//root目录下的 .java 的文件。 - -
FilenameFilter的用法 FilenameFilter是一个接口,它本身最大的作用就是在File文件夹对像的list和listFiles方法中做文件过滤使用。
主要为大家详细介绍了java文件过滤类FileFilter和FilenameFilter,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这个是用FilenameFilter 做的过滤 .java文件,当然可以过滤其他的,比较简单的一个demo,新手适用。可以看看。不喜勿喷呀。谢谢。
主要介绍了Java使用FilenameFilter查找出目录下指定后缀的文件,结合实例形式分析了java基于FilenameFilter类的文件遍历、查找相关操作技巧,需要的朋友可以参考下
java的FilenameFilter实现的文件过滤
-----------------------------上面只能根据文件名或者文件夹名过滤,下面的可以通过文件的其他属性过滤,例如:文件大小等----------------------------- 5.File[] listFiles(FileFilter filter) 获取...
查看某个文件夹中的图片,显示在网页中。程序片: package tom.jiafei; import java.io.*; class FileName implements FilenameFilter { public boolean accept(File dir,String name) { boolean boo=false; if...
这个源码主要是对我的Jsoup笔记进行整合,初步实现saz格式文件到csv文件转换的基本功能,程序要实现的基本功能主要是: 1、saz文件遍历:获取Java工程所在目录的上层目录中,指定扩展名(.saz)的文件, 2、遍历获得...
字符编码检测和转换 附件中:FileEncodeDetector.java 此文件可以检测指定文件的编码格式 ... new FilenameFilter() { public boolean accept(File dir, String name) { return name.endsWith(".java"); } });
listFiles(FilenameFilter) 文件属性过滤器 public class Test1 { public static void main(String[] args) { test1(); } /////////////////////2014-8-23文件筛选操作 private static void test1()...
实现FilenameFilter接口来对文件做出过滤 2、关与给匿名类需要传入final参数问题 匿名内部类编译时,会单独生成一个class文件,该类持有外部类的引用,传入的参数都会自动复制一份。那么传入的参数 与 内部类实际...
<br>其类有: <br>PicBrowseFrame.class 图片浏览器的主窗体 <br>ImageFilter.class 图片过滤 <br>FileNameFIlter.class 文件过滤 <br>Uitl.class 文件名后缀解析 <br>JFileChooserCre.class ...
resizeIcon(ImageIcon,JLabel)控制图片显示大小的函数 deleteFile(File)删除文件函数 main(String[])主函数 2 主要代码 整个程序的界面如下图: 2.1 选择文件夹功能 class TreeSelect implements ...
FilePermission 此类表示对文件和目录的访问。 FileReader 用来读取字符文件的便捷类。 FileWriter 用来写入字符文件的便捷类。 FilterInputStream FilterInputStream 包含其他一些输入流,它将这些流用作其基本...
代码如下: /**本类是用来选择文件夹中是.jpg类型的图片*/ private class JpgFileFilter implements FilenameFilter{ @Override public boolean accept(File dir, String filename) { // TODO Auto-generated method ...
KRemote Files v1.0-用户指南 服务器文件管理器servlet 配置webapp web.xml 配置器基础 FileConfigurator界面 ...使用FilenameFilter和FileFilter 处理RemoteFile方法引发的异常 使用RemoteFile的示例 RemoteIn
python 的fnmatch 还真是省心,相比于 java 中的FilenameFilter ,真是好太多了,你完成不需要去实现什么接口。 fnmatch 配合 os.walk() 或者 os.listdir() ,你能做的事太多了,而且用起来相当 easy。 # coding: ...
import java.io.FilenameFilter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Intent; import android.media....
这个项目被放弃了。 这是一个简单的Java库,用于构造实现Java接口FilenameFilter的正确对象,以使用正则表达式作为文件名过滤器。