Java 如何查询硬盘所有文件

以前java 还什么都不懂,能把硬盘文件输入到控制台上,然后,慢慢学,到现在,终于实现了,在桌面创建.txt文件,然后把硬盘上的 文件名字全部都输入到.txt文件里边,效果类似:


这样,跑完这个小程序,管你是老司机还是新司机,什么文件夹下边的日语学习,摇杆驱动,家教老师都该现形了:

package com.it.IO;
import java.io.*;
//import java.util.LinkedList;
//import java.util.List;
import java.util.*;
public class Doc {
	public File file=get();//获得.txt文件
	static List<String>list=new LinkedList<>();//创建list集合,用来暂时储存
	public static File get()
	{
		File file=new File("C:\\Users\\Sky\\Desktop\\Doc.txt");//创建的.txt问价的位置 
		if(file.exists())//如果已经存在了
			file.delete();//删除之
		else
		{
			try
			{
				file.createNewFile();//如果不存在,就创建一个
			}
			catch(IOException e)
			{
				e.printStackTrace();
			}
		}
		return file;
	}
	public static void main(String args[])
	{
		long startTime= System.currentTimeMillis();//获取程序开始时间
		String fileName="D:"+File.separator;//表示待查询的为D盘
		File f=new File(fileName);//实例化对象
		print(f);//打印
		write(list);//写到.txt文件内
		long endTime=System.currentTimeMillis();//获取程序结束时间
		System.out.println("程序一共执行了"+(endTime-startTime)+"毫秒!");
	}
	private static void write(List<String> list) {
	// TODO Auto-generated method stub
		File file=get();
		try {
			FileWriter writer = new FileWriter(file);
			for(int i=0;i<list.size();i++)
			{
				String str=list.get(i);
				writer.write(str);//写入.txt文件内
				writer.write("\r\n");
			}
			writer.close();//关闭流
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	
}
	private static void print(File f) {
		// TODO Auto-generated method stub
		if(f!=null)//如果当前文件不为空
		{
			if(f.isDirectory())//如果当前文件是个文件夹
			{
				//String Name= f.getAbsolutePath();//输出文件夹名字
				//list.add("++++++++"+Name+"++++++++++++++");
				File[] fileArray = f.listFiles();//获取当前文件夹的子文件
				if(fileArray!=null)//
				{
					for(int i=0;i<fileArray.length;i++)
					{
						print(fileArray[i]);//递归子文件
					}
				}
			}
			else
			{
				String name=f.getAbsolutePath();//如果当前这个不是文件夹
				list.add(name);//获取抽象路径名的绝对路径名字符串,存入list数组里边
			}
		}
	}
}

不过 由于我D盘下边文件比较多,程序跑了大概两分多。

年轻人好好写代码 ,不要沉迷日语学习。

前天正好要找一个本地文件, 就用java实现了, 全盘的本地文件搜索功能. 代码不依赖其它第三方jar, 连日志都用system.out了. 初学者可以了解下. 主程序: LocalFileSearcher.java LocalFileSearcher searcher = new LocalFileSearcher(); searcher.doSearch("迅雷"); log如下: Start search keyword: 迅雷 Start search all drivers! success: E:\迅雷下载 success: F:\迅雷下载 success: C:\Users\Administrator\Desktop\迅雷.lnk success: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\迅雷软件 success: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\迅雷软件\迅雷 success: C:\Users\All Users\Microsoft\Windows\Start Menu\Programs\迅雷软件 success: C:\Users\Administrator\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\迅雷.lnk success: C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Libraries\迅雷下载.library-ms success: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\迅雷软件\迅雷\迅雷影音.lnk success: C:\Users\All Users\Microsoft\Windows\Start Menu\Programs\迅雷软件\迅雷 success: C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\迅雷软件 success: C:\Users\All Users\Microsoft\Windows\Start Menu\Programs\迅雷软件\迅雷\迅雷影音.lnk success: C:\Users\Administrator\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\迅雷.lnk success: C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\迅雷软件\迅雷 success: C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\迅雷软件\迅雷\卸载迅雷.lnk success: C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\迅雷软件\迅雷\迅雷.lnk Search costs : 3861(ms) File searched : 154848 Folder searched: 31463 Success match : 16 后续再更新完善
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值