老师让写一个桌面搜索工具,我现在正在学java,就想用java写,当练手了。大家有什么建议吗
解决方案 »
- 关于API的使用
- 请问: public class JLabel extends JComponent implements SwingConstants,Accessible分别是什么意思呀
- Type safety: The method add(Object) belongs to the raw type List. References to generic type must be parameterized
- 有没有办法实现这样的需求?
- 编程思想上的一段代码,执行时总是出现异常?路过的帮忙看一下
- 工厂模式 哪儿有误?
- 高分求解问题 表达式转换
- 安装jdk1.1.8在98 和2000下始终不能用是什么原因?
- 关于文本格式的问题
- 无法显示,为什么
- 局域网聊天室连接数据库如何实现
- 将byte[]写入类对象中,不能完全写入
这个应该复杂在界面吧。
import java.util.ArrayList;public class ListAll
{
//用于判断目录或文件所处的层次
private static int time;
// 递归的方法
public static void deepList(File file)
{
if (file.isFile() || 0 == file.listFiles().length)
{
return;
}
else
{
File[] files = file.listFiles();
files = sort(files);
for(File f : files)
{
StringBuffer output = new StringBuffer();
if(f.isFile())
{
output.append(getTabs(time));
output.append(f.getName());
}
else
{
output.append(getTabs(time));
output.append(f.getName());
output.append("\\");
}
System.out.println(output);
if(f.isDirectory())
{
time++;
deepList(f);
time--;
}
}
}
} // 整理文件数组,使得目录排在文件之前
private static File[] sort(File[] files)
{
ArrayList<File> sorted = new ArrayList<File>(); // 寻找到所有的目录
for (File f : files)
{
if (f.isDirectory())
{
sorted.add(f);
}
}
// 寻找到所有的文件
for (File f : files)
{
if (f.isFile())
{
sorted.add(f);
}
} return sorted.toArray(new File[files.length]);
}
//判断需要加多少 tab的方法
private static String getTabs(int time)
{
StringBuffer buffer = new StringBuffer();
for(int i = 0; i < time; i++)
{
buffer.append("\t");
}
return buffer.toString();
}
public static void main(String[] args)
{
File file = new File("D:\\ZZZ");
deepList(file);
}
}
这是列出一个文件夹中的所有文件,我想对你有帮助的,,
另外老师让我看看介绍Lucene的书,Lucene是一个全文检索系统。你如果有需要的话推荐你看一看。