A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蓝迪 初级黑马   /  2012-8-29 15:41  /  1546 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 蓝迪 于 2012-8-29 16:35 编辑
  1. /*
  2. 用递归算法扫描文件夹里的.txt后缀的可执行文件
  3. 然后用Runtim方法执行它
  4. */
  5. import java.io.*;
  6. class FileText
  7. {
  8.      public static void main(String[] args) throws Exception
  9.     {
  10.         File f = new File("g:\\xuexi\\java1\\day20");//扫描day20文件夹
  11.         method(f);
  12.     }
  13.     public static void method(File dir)throws Exception
  14.     {
  15.          File[] files = dir.listFiles();//创建数组接收返回的文件对象
  16.          for (int x=0; x<files.length ; x++)
  17.         {
  18.               if (files[x].isDirectory())//如果返回的是文件夹,则继续递归
  19.               method(files[x]);
  20.               else
  21.               if (files[x].canExecute())//如果返回的是文件,则判断文件是否可执行
  22.              {
  23.                     String s = files[x].getName();//接收可执行文件的文件名
  24.                     if(s.endsWith(".txt"))
  25.                    {
  26.                             <FONT color=red>StringBuilder sb = new StringBuilder("notepad ");</FONT><FONT color=black>//</FONT>创建一个字符串缓冲区,先把打开方式输入缓冲区中
  27.                             sb.append(s);//在原缓冲区内容后边输入文件名
  28.                             String s1 = sb.toString();//接收缓冲区中数据

  29.                             System.out.println("s1=="+s1);

  30.                             Runtime r = Runtime.getRuntime();
  31.                             Process p = r.exec(s1);
  32.                   }
  33.             }
  34.       }
  35.    }
  36. }
复制代码
在看毕老师关于运用递归算法查找文件夹及文件的视频中,老师曾经说了句  " 如果查找到可执行文件,并用Runtim方法执行它们,是不是很牛啊"   
然后我就自己尝试着做了这个练习
用递归的方法,查找可执行文件其实并不难
这个程序的难点就在于:
查找到的可执行文件有不同的后缀,就是代表这文件的类型不相同,当你想要运行他们的时候,他们的打开方式不相同
刚开始我以为只有获取到可执行文件的绝对路径,就可以调用 Runtim中 exec方法来运行他了,结果编译没问题,但是运行就出现错误了

后来经过反复的思考,还有询问
感谢 周兴华 同学给我的解答还有建议
我使用了 StringBuilder 这个字符缓冲区,每一次查询到可执行文件,我都先创建一个缓冲区,用于存储想要使用的文件打开方式  如: notepad  (记事本形式)
然后把获取的可执行文件用 append 方法添加到缓冲区中
再创建一个String类型变量,接收缓冲区中数据, 即接收了 ( "notepad  可执行文件的绝对路径")
这样调用exec方法 就可以用记事本形式打开你所搜到的可执行文件了

希望能给大家带来点帮助,谢谢

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 赞一个!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马