日期:2014-05-20  浏览次数:20874 次

求高手点拨:“搜索本地硬盘特定文件”的代码的书写深层理解。
高手,您好:
    我是一名学习软件工程的学生,我碰到了一个需求:
    使用Java进行“面向用户的PC进行特定文件类型”的“路径检索”工作。
    由于时间紧迫,我得到了一位朋友提供的方法代码:
1import java.io.*;
2
3import javax.swing.filechooser.FileSystemView;
4
5public class Program {
6
7 /**
8  * @param args
9  */
10 public static void main(String[] args) {
11 // TODO Auto-generated method stub
12 File[] fsFiles = GetLocalDrivers();
13 for (File drivers : fsFiles) {
14 // System.out.println(drivers.getPath());
15 SearchFiles(drivers);
16 }
17 }
18
19 public static File[] GetLocalDrivers() {
20 try {
21 FileSystemView fsv = FileSystemView.getFileSystemView();
22 File[] fs = File.listRoots();
23 return fs;
24 } catch (Exception e) {
25 return null;
26 }
27 }
28
29 public static void SearchFiles(File dir) {
30 File[] files = dir.listFiles();
31 if (files != null) {
32 for (File file : files) {
33 // System.out.println(file.getPath());
34 if (file.isDirectory()) {
35 SearchFiles(file);
36 } else {
37 if (file.getPath().endsWith("txt")) {
38 System.out.println(file.getPath());
39 }
40 }
41 }
42 }
43 }
44
45}
------------------------------------------------------------------------------------------------------------
    上文中的代码,应该是“查找txt文件类型”的方法。
    对与上文中的代码,我有下面几个问题,还不能理解:
    我一直认为:File类的作用,是“定位一个待操作的文件的路径”的作用。
    但是,今天我看到了第12行代码,我不禁产生了下面的疑问:
    1.是否任何一个在Java中的引用类型的数据类型,都能够“进行自身对象的创建”和“自身对象数组的创建”?甚至包括:Thread类,FileOutputStream类,还有FlowLayout类等等所有只要是在Java中出现过的类,全部都能够进行上述动作:“创建自身对象”“创建自身对象数组”的进行吗?
    2.“抽象路径”,这个概念,的具体含义是什么?现在我的印象中,它的含义是:
    一个面向Windows,UNIX,安卓....等各种操作系统这些“各个国家不同形式的方言”,所进行的“整体语义的标准统一”:相当于一个表达存储路径的所在位置的面向不同操作系统的“世界语”。
    3.如果高手有时间,希望高手能够为弟我得到的代码,根据每一行,进行一下“1-->45行”的“配有行号的”“清晰的代码语义注释”。
    这个作品,是我学习软件工程以来的第一个“完整的亲手制作”的作品,意义重大。
    如果高手能够帮我,愿意与您成为一生的朋友。
    100分奉上
    敬礼
                                                        一颗向着天空生长的小菜
Java 搜索文件方法 硬盘 操作系统 Java?SE

------解决方案--------------------