精华内容
下载资源
问答
  • 主要为大家详细介绍了Java扫描文件夹下所有文件名,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 自己编写的自动扫描指定文件夹,扫描文件夹中的txt文档,指定格式插入到定义的数据库表中。
  • Java扫描指定文件夹下所有文件

    千次阅读 2018-12-26 09:55:52
    import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; public class ScanPackage { private static ArrayList scanFiles = new ArrayList(); private static ...
    
    package xx.test;
     
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.util.ArrayList;
    
     
    public class ScanPackage {
    	private static ArrayList<Object> scanFiles = new ArrayList<Object>();
    	private static int count=0;
    	
    	public static void main(String[] args) throws Exception { 
    		long currentTimeMillis = System.currentTimeMillis();
    		scanFilesWithRecursion("D:\\Workspace");
    		System.out.println(scanFiles.size());
    		System.out.println(count);
    		long currentTimeMillis2 = System.currentTimeMillis();
    		System.out.println(currentTimeMillis2-currentTimeMillis);
    	}
    	
    	/**
    	 * TODO:递归扫描指定文件夹下面的指定文件
    	 * @return ArrayList<Object>
    	 * @throws FileNotFoundException 
    	 */
    	public static void scanFilesWithRecursion(String folderPath) throws FileNotFoundException{
    		File directory = new File(folderPath);
    		if(!directory.isDirectory()){
    			throw new FileNotFoundException('"' + folderPath + '"' + " input path is not a Directory , please input the right path of the Directory. ^_^...^_^");
    		}
    		if(directory.isDirectory()){
    			File [] filelist = directory.listFiles();
    			for(int i = 0; i < filelist.length; i ++){
    				/**如果当前是文件夹,进入递归扫描文件夹**/
    				if(filelist[i].isDirectory()){
    					/**递归扫描下面的文件夹**/
    					count++;
    					scanFilesWithRecursion(filelist[i].getAbsolutePath());
    				}
    				/**非文件夹**/
    				else{
    					scanFiles.add(filelist[i].getAbsolutePath());
    					System.out.println(filelist[i].getAbsolutePath());
    //					if (filelist[i].getName().contains("-汉译世界学术名著丛")) {
    //						filelist[i].renameTo(new File("D:/Message/Book/一生必读的60本/"+filelist[i].getName().replace("-汉译世界学术名著丛", "")));
    //					 }
    				}
    			}
    		}
    	}
    	
    }
    
    展开全文
  • 主要为大家详细介绍了java递归与非递归实现扫描文件夹下所有文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • java使用swing编写sfp文件与文件夹上传功能,后续给大家升级同时多个目标地址上传
  • java扫描指定文件夹下面的所有文件 扫描一个文件夹下面的所有文件,因为文件夹的层数没有限制可能多达几十层几百层,通常会采用两种方式来遍历指定文件夹下面的所有文件。 递归方式非递归方式(采用队列或者...

    java中扫描指定文件夹下面的所有文件

    扫描一个文件夹下面的所有文件,因为文件夹的层数没有限制可能多达几十层几百层,通常会采用两种方式来遍历指定文件夹下面的所有文件。
    1. 递归方式
    2. 非递归方式(采用队列或者栈实现)
    下面我就给出两种方式的实现代码,包括了递归与非递归实现,code如下所示。

    package q.test.filescanner;
    
    import java.io.File;
    import java.util.ArrayList;
    import java.util.LinkedList;
    
    import q.test.filescanner.exception.ScanFilesException;
    
    /**
     * @author 邪恶小先生
     */
    public class FolderFileScanner {
    	
    	private static ArrayList<Object> scanFiles = new ArrayList<Object>();
    	
    	/**linkedList实现**/
    	private static LinkedList<File> queueFiles = new LinkedList<File>();
    	
    	
    	/**
    	 * TODO:递归扫描指定文件夹下面的指定文件
    	 * @return ArrayList<Object>
    	 * @author 邪恶小先生(LQ)
    	 * @time 2017年11月3日
    	 */
    	public static ArrayList<Object> scanFilesWithRecursion(String folderPath) throws ScanFilesException{
    		ArrayList<String> dirctorys = new ArrayList<String>();
    		File directory = new File(folderPath);
    		if(!directory.isDirectory()){
    			throw new ScanFilesException('"' + folderPath + '"' + " input path is not a Directory , please input the right path of the Directory. ^_^...^_^");
    		}
    		if(directory.isDirectory()){
    			File [] filelist = directory.listFiles();
    			for(int i = 0; i < filelist.length; i ++){
    				/**如果当前是文件夹,进入递归扫描文件夹**/
    				if(filelist[i].isDirectory()){
    					dirctorys.add(filelist[i].getAbsolutePath());
    					/**递归扫描下面的文件夹**/
    					scanFilesWithRecursion(filelist[i].getAbsolutePath());
    				}
    				/**非文件夹**/
    				else{
    					scanFiles.add(filelist[i].getAbsolutePath());
    				}
    			}
    		}
    		return scanFiles;
    	}
    	
    	/**
    	 * 
    	 * TODO:非递归方式扫描指定文件夹下面的所有文件
    	 * @return ArrayList<Object> 
    	 * @param folderPath 需要进行文件扫描的文件夹路径
    	 * @author 邪恶小先生(LQ)
    	 * @time 2017年11月3日
    	 */
    	public static ArrayList<Object> scanFilesWithNoRecursion(String folderPath) throws ScanFilesException{
    		File directory = new File(folderPath);
    		if(!directory.isDirectory()){
    			throw new ScanFilesException('"' + folderPath + '"' + " input path is not a Directory , please input the right path of the Directory. ^_^...^_^");
    		}
    		else{
    			//首先将第一层目录扫描一遍
    			File [] files = directory.listFiles();
    			//遍历扫出的文件数组,如果是文件夹,将其放入到linkedList中稍后处理
     			for(int i = 0; i < files.length; i ++){
    				if(files[i].isDirectory()){
    					queueFiles.add(files[i]);
    				}else{
    					//暂时将文件名放入scanFiles中
    					scanFiles.add(files[i].getAbsolutePath());
    				}
    			}
    			
    			//如果linkedList非空遍历linkedList
    			while(!queueFiles.isEmpty()){
    				//移出linkedList中的第一个
    				File headDirectory = queueFiles.removeFirst();
    				File [] currentFiles = headDirectory.listFiles();
    				for(int j = 0; j < currentFiles.length; j ++){
    					if(currentFiles[j].isDirectory()){
    						//如果仍然是文件夹,将其放入linkedList中
    						queueFiles.add(currentFiles[j]);
    					}else{
    						scanFiles.add(currentFiles[j].getAbsolutePath());
    					}
    				}
    			}
    		}
    		
    		return scanFiles;
    	}
    }
    


    展开全文
  • 在最近工作中,需要用程序来处理一个服务器地址的文件夹下的特定后缀名的文件,需要对这个文件夹里面的部分文件做转移处理,所以首先想到的就是用递归扫描文件夹啊!下面开始代码分析递归扫描文件夹: 二.代码部分...

    一.业务需求部分

            在最近工作中,需要用程序来处理一个服务器地址的文件夹下的特定后缀名的文件,需要对这个文件夹里面的部分文件做转移处理,所以首先想到的就是用递归扫描文件夹啊!下面开始代码分析递归扫描文件夹:

    二.代码部分

    方法一:

    1.下面的代码中用的是以后缀名进行扫描

    package com.yinxin.control;
    
    import java.io.File;
    import java.io.FileFilter;
    import java.util.ArrayList;
    import java.util.List;
    
    public class Client {
    	static int countFiles = 0;// 声明统计文件个数的变量
    	static int countFolders = 0;// 声明统计文件夹的变量
    
    	public static File[] searchFile(File folder, final String keyWord) {// 递归查找包含关键字的文件
    
    		File[] subFolders = folder.listFiles(new FileFilter() {// 运用内部匿名类获得文件
    					@Override
    					public boolean accept(File pathname) {// 实现FileFilter类的accept方法
    						if (pathname.isFile())// 如果是文件
    							countFiles++;
    						else
    							countFolders++;// 如果是目录
    						if (pathname.isDirectory()
    								|| (pathname.isFile() && pathname.getName()
    										.toLowerCase()
    										.contains(keyWord.toLowerCase())))// 目录或文件包含关键字
    							return true;
    						return false;
    					}
    				});
    
    		List<File> result = new ArrayList<File>();// 声明一个集合
    		for (int i = 0; i < subFolders.length; i++) {// 循环显示文件夹或文件
    			if (subFolders[i].isFile()) {// 如果是文件则将文件添加到结果列表中
    				result.add(subFolders[i]);
    			} else {// 如果是文件夹,则递归调用本方法,然后把所有的文件加到结果列表中
    				File[] foldResult = searchFile(subFolders[i], keyWord);
    				for (int j = 0; j < foldResult.length; j++) {// 循环显示文件
    					result.add(foldResult[j]);// 文件保存到集合中
    				}
    			}
    		}
    
    		File files[] = new File[result.size()];// 声明文件数组,长度为集合的长度
    		result.toArray(files);// 集合数组化
    		return files;
    	}
    
    	public static void main(String[] args) {// java程序的主入口处
    		File folder = new File("E:\\totest");// 默认目录
    		String keyword = ".dat";
    		if (!folder.exists()) {// 如果文件夹不存在
    			System.out.println("目录不存在:" + folder.getAbsolutePath());
    			return;
    		}
    		File[] result = searchFile(folder, keyword);// 调用方法获得文件数组
    		System.out.println("在 " + folder + " 目录下所有子文件下查找后缀为" + keyword+"的所有文件");
    		System.out.println("查找了" + countFiles + " 个文件," + countFolders
    				+ " 个文件夹,共找到 " + result.length + " 个符合条件的文件:");
    		for (int i = 0; i < result.length; i++) {
    			File file = result[i];
    			System.out.println(file.getAbsolutePath() + " ");// 显示文件绝对路径
    		}
    	}
    
    }
    

    2.文件地址:

     3.展示效果图:

    方法二:

     1.通过文件后缀名进行找文件

    package com.yinxin.control;
    
    import java.io.File;
    
    public class Test {
    	public static void main(String[] args) {
    		File file = new File("E:" + File.separator + "totest");
    		finDiGui(file);
    	}
     
    	public static void finDiGui(File file) {
    		// 判断是否为文件夹
    		if (file.isDirectory()) {
    			File[] listFiles = file.listFiles();
    			// 执行操作
    			for (File f : listFiles) {
    				finDiGui(f);  //递归调用
    			}
    		}
    		//用file的endsWith()方法是通过后缀去筛选 
    		if (file.getName().endsWith(".dat")) {
    			System.out.println(file);
    		}
    	}
    }
    

    效果图:

    2.通过文件前缀进行查找文件

    public class Test {
    	
    	public static void finDiGui(File file) {
    		// 判断是否为文件夹
    		if (file.isDirectory()) {
    			File[] listFiles = file.listFiles();
    			// 执行操作
    			for (File f : listFiles) {
    				finDiGui(f);  //递归调用
    			}
    		}
    		//通过它的前缀用startsWith()方法去筛选
    		if (file.getName().startsWith("NXJZGRZH")) {
    			System.out.println(file);
    		}
    	}
    	
    	public static void main(String[] args) {
    		File file = new File("E:" + File.separator + "totest");
    		finDiGui(file);
    	}
    }

     效果图:

    展开全文
  • 扫描文件夹并按层次输出文件夹内容 今天这个功能的实现并不难,主要是考一个思考方法,用递归遍历所有子文件夹及子文件,这个是一个点;另一个点就是怎么按层次输出,这就考到了对File类的操作了,如果你很熟悉这个...

    扫描文件夹并按层次输出文件夹内容

    今天这个功能的实现并不难,主要是考一个思考方法,用递归遍历所有子文件夹及子文件,这个是一个点;另一个点就是怎么按层次输出,这就考到了对File类的操作了,如果你很熟悉这个类,那么你一定知道有一个file.parent方法,这是用来干嘛的呢,我也不卖关子,就是用来求出给定文件夹的父目录的绝对路径,那么这就是一个突破口了,每个标准文件或者文件夹都要其父目录,而且一个目录里的标准文件及文件夹的父目录也是一脉相承的,区别在于多一些目录而已,我们就可以利用这个输出制表符来实现按层区分,那么这就简单了,只要求出父目录中的/个数,我们就可以按/个数+1来输出制表符个数了,毕竟我们的输出所给的文件作为根目录嘛~下面是我的代码:

    import java.io.File;
    import java.util.Objects;
    /**
     * 扫描文件夹并按层次输出文件夹的子文件夹与子文件
     * @author July.Jul
     *
     */
    
    public class FileDemo {
    
    	private int count = 0;
    
    	//返回字符串中的\数
    	public int getnum(String s){
    		int num = 0;
    		for (int i = 0; i < s.length(); i++) {
    			if(s.charAt(i) == '\\' ){
    				num += 1;
    			}
    		}
    		return num;
    	}
    
    	public void read(File dir,int p) {
    		File[] files = dir.listFiles();
    		if (Objects.nonNull(files)) {
    			//遍历目录信息
    			for (int i = 0; i < files.length; i++) {
    				File f = files[i];
    				//得到每个目录前的空格数
    				count = getnum(f.getParent())-p;
    				//目录前输出空格
    				for (int j = 0; j <= count; j++) {
    					System.out.print("\t");
    				}
    				//输出目录名字
    				System.out.println("-" + f.getName());
    				//如果不是文件,遍历其子目录
    				if (!f.isFile() && f.isDirectory()) {
    					/**递归的运用*/
    					read(f,p);
    				}
    			}
    		}
    	}
    
    	public static void main(String[] args) {
    		//新建对象
    		FileDemo fm = new FileDemo();
    		File f = new File("C:\\DriverAssistantStore");
    		//输出根目录
    		System.out.println("-" + f.getName());
    		//得到根目录的父目录的\个数
    		int p = fm.getnum(f.getAbsolutePath());
    		new FileDemo().read(f,p);
    	}
    }
    
    输出结果(当然,由于输出的文件实在有些多,所以我删掉了很大一部分):
    -DriverAssistantStore
    	-drivers
    		-29B16F9D877386FB7F9F345D325E4277
    			-DIFxAPI.dll
    			-drivers
    				-production
    					-Windows10-x64
    					-Windows7-x64
    					-Windows7-x86
    					-Windows8-x64
    					-Windows8-x86
    					-Windows8.1-x86
    						-dptf_acpi.inf
    							-dptf_acpi.cat
    							-dptf_acpi.inf
    							-dptf_acpi.sys
    							-WdfCoinstaller01011.dll
    			-Lang
    				-ar-SA
    					-License.txt
    					-setup.exe.dll
    			-mup.xml
    			-package.xml
    			-setup.cfg
    			-setup.exe
    			-setup.if2
    			-x64
    				-DIFxAPI.dll
    				-Drv64.exe
    		-3AD97E405C53E0B1AFF50E244064374C
    			-DPInst32.exe
    			-DPInst64.exe
    			-DPInstLaunch.exe
    			-heci.cat
    			-heci.inf
    			-x64
    				-TeeDriverW8x64.sys
    			-x86
    				-TeeDriverW8.sys
    		-74FC0880FC0C51079E346DF0F87ABDC8
    			-FAQ
    				-8168C_manual_install.txt
    				-Change_installer_language.txt
    				-Driver_failed_to_load_code_10.txt
    				-Driver_Installer_Rollback.txt
    				-INF_default_option_changed.txt
    				-Realtek_Windows_Vista_Driver_Adv_Properties.htm
    				-Use_installer_to_auto_remove_driver.txt
    				-WAIK_Ver_RTM_with_new_driver.txt
    				-WOL_AND_Shutdown_Link_Speed_OPTION.txt
    			-WIN10
    				-32
    					-rt640x86.cat
    					-rt640x86.inf
    					-rt640x86.sys
    				-64
    					-rt640x64.cat
    					-rt640x64.inf
    					-rt640x64.sys
    				-For_WDS_Server_pls_use_WinPE_folder.txt
    				-WinPE
    					-32
    						-rt640x86.cat
    						-rt640x86.sys
    						-ws640x86.inf
    					-64
    						-rt640x64.cat
    						-rt640x64.sys
    						-ws640x64.inf
    
    

    在做以上编码时,得主要一些东西,比如Java中的特殊符号“\”“.”等等,如果需要了解更多,可以在网上下载JDK的chm文件看看,里面有很多JDK的说明,我们作为初学者,要学会阅读文档哦~
    最后,希望我的文章能对大家有所帮助,如有问题,还望不吝赐教!!!

    展开全文
  • Java,通过自动扫描本地文件夹下所有的TXT和zip文件,然后通过FTP上传到目标地址下,两个地址都是动态的,不是写死的。需要源码和相关依赖配置,另zai付重酬
  • java 扫描文件夹所有下文件

    万次阅读 2013-01-22 16:32:49
    import java.io.File;... *自动扫描文件夹下的文件  *用途:自动扫描脚本输入路径,输出要执行的sql导入数据库;  */ public class OutSql {  /**  * @param args  */  public static v
  • Java目录监视器源程序 9个目标文件 内容索引:JAVA源码,综合应用,目录监视 用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java...
  • import java.io.BufferedReader; import java.io.File; import java.io.FileFilter; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java....
  • 原文链接:...import java.io.File; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner scanner = new Sc...
  • Java枚举目录下的所有文件,列出文件名,是一个Java目录直读程序的例子,代码中定义了一个showDirContent方法,该方法实现取得目录内容,用路径实例化一个文件对象,重点:取得目录内所有文件列表,实例化一个...
  • # java file怎么读取空文件夹 ## 我写了个代码生成器,有一些空的文件夹我要保留目录结构也要一起生成出来 ## 但是file.listFiles()方法只会获取到有内容的文件夹,不能获取空的文件夹 ## 大佬们有没有什么好...
  • 这个问题需要了解一下File这个类的几个常用方法。...import java.io.*; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Findfile { public void find(String path,
  • 先来看看效果:现在有一个文件夹,其结构树如下: 执行代码(注意:此处未使用真实路径,但是目录结构吻合): FolderRecursion.recur(new File("/test"), new FileProcessor() { @Override public...
  • JAVA获取某个文件夹下的所有文件 需要JDK1.8 不支持@Data注解的可以删掉用IDE生成getter setter package com.plugin; import lombok.Data; import java.io.File; import java.io.FileFilter; import java.io....
  • Folder Size会分析您的硬盘驱动器并显示文件和文件夹的大小,以便您可以轻松地检查您的磁盘空间分配。应用程序将显示的...您可以轻松地找出哪些文件或文件夹占用了你的驱动器空间,也将扫描的所有子文件夹的大小。
  • java上传文件夹文件

    千次阅读 2019-09-06 09:50:22
    下面直接贴代码吧,一些难懂的我部分都加上注释了: 上传文件实体类: 看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。 publicclassFileInf{ publicFileInf(){} p...
  • 可以扫描手机内部指定文件夹内的音乐、图片、视频等
  • import java.io.*; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Findfile {  public void find(String path,String reg){  Pattern pat=Pattern.compi
  • 创建一个文件监听器 监听文件夹下文件的变化  使用 commons-io 中的文件监控  import java.util.concurrent.TimeUnit; import org.apache.commons.io.filefilter.FileFilterUtils; import org.apache.commons...
  • Java监控目录文件夹程序,用Java写的简单目录监视系统,每5秒会自动扫描一次被监视的文件夹,可让用户了解该目录中文件大小及文件增减数目的变化。
  • import java.io.File; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.annotation.processing.FilerException; public class ShowFile { public st...
  • 这个方法就是比较简单,因为是全部处理,不用...import java.io.File; import com.yinxin.tools.Log4jBean; /** * @content 转移文件 * @author syp * @time 2019年10月27日16:45:51 */ public class MoveFile ...
  • java扫描指定目录下的所有文件

    千次阅读 2018-12-07 20:18:29
    java扫描指定目录下的所有文件代码: import java.io.File; public class 列举当前目录下的所有文件 { static int count = 0 ; public static void main(String[] args) { String path = "C:" + ...
  • Java简单实现类似“全能扫描王”的功能,使用OpenCV实现。项目中包含了opencv_java343.dll动态链接库,在dll文件夹中,需要在eclipse中引入

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,289
精华内容 19,315
关键字:

java扫描大文件夹

java 订阅