又是一个小程序····
 
  public class hanzipinyin {  public static void change(String path, String paths, String savepaths)  {        File d = new File(paths);   //取得当前文件夹下所有文件和目录的列表   File lists[] = d.listFiles();   String pathss = new String(""); 
  //对当前目录下面所有文件进行检索   for(int i = 0; i < lists.length; i ++)   {    if(lists[i].isFile())    {     //得到doc文件名     String filename = lists[i].getName();     //定义最简文件名     String realfilename = new String(filename.substring(0,       (filename.length() - 4)));       //定义文件全名为路径加文件名     String fullsavefilename = paths + realfilename;     fullsavefilename = fullsavefilename.replace('\\', '_');     fullsavefilename = fullsavefilename.replace(':', '@');     fullsavefilename = fullsavefilename.substring(      47, fullsavefilename.length()); 
    //定义文件类型     String filetype = new String(""); 
    filetype = filename.substring((filename.length() - 3),       filename.length());          if(filetype.equals("doc"))     {      System.out.println("--------\n当前正在转换......");      //打印当前目录路径      System.out.println(paths);      //打印doc文件名       System.out.println(realfilename);             //启动word      ActiveXComponent app =        new ActiveXComponent("Word.Application");            String docpath = paths + filename;      String txtpath = savepaths + fullsavefilename + ".htm";            //格式化文件名      txtpath = formatname(txtpath);           //将中文文件名改为拼音      txtpath = pinyin(path, txtpath);            //要转换的word文件      String inFile = docpath;      //txt文件      String tpFile = txtpath; 
     boolean flag = false;            try       {       //设置word不可见       app.setProperty("Visible", new Variant(false));       Object docs = app.getProperty("Documents").toDispatch();       //打开word文件       Object doc = Dispatch.invoke(docs,"Open",         Dispatch.Method, new Object[]{inFile,        new Variant(false), new Variant(true)},         new int[1]).toDispatch();       //作为txt格式保存到临时文件       Dispatch.invoke(doc,"SaveAs", Dispatch.Method,         new Object[]{tpFile,new Variant(10)},         new int[1]);       Variant f = new Variant(false);       Dispatch.call(doc, "Close", f);       flag = true;      }       catch (Exception e)       {       e.printStackTrace();      }       finally       {       app.invoke("Quit", new Variant[] {});      }      System.out.println("转化完毕!\n--------");     }    }    else    {     pathss = paths;     //进入下一级目录     pathss = pathss + lists[i].getName() + "\\";         //递归遍历所有目录     change(path, pathss, savepaths);    }   }     }    public static String formatname(String name)  {   name = name.replace('、', '_');   name = name.replace(')', ')');   name = name.replace('(', '(');   return name;  }    public static String pinyin(String path, String hanzi)  {   File f = new File(path);   String pinyin = new String("");   pinyin = hanzi;       try   {    FileReader fr = new FileReader(f);    BufferedReader br = new BufferedReader(fr);    String line = new String(""); 
   line = br.readLine();    int count = 0;    int location = 0;    while(line != null)    {     while(pinyin.indexOf(line.charAt(0)) != -1)     {      location = pinyin.indexOf(line.charAt(0));      pinyin = pinyin.substring(0, location) +        line.substring(1, 2) +        pinyin.substring(location + 1, pinyin.length());      }     line = br.readLine();     System.out.print("\b\b\b\b\b\b" + count++);    }    fr.close();    br.close();      }   catch(Exception e)   { //   System.err.println(e);   }   return pinyin;  }      public static void main(String[] args)  {      String paths = new String("D:\\Work\\2004.10.8\\test system\\test01\\word\\");   String savepaths = new String ("D:\\Work\\2004.10.8\\test system\\test01\\html\\");   String path = new String("D:\\test\\file\\pinyin.txt");      change(path, paths, savepaths); 
 } } 其中拼音和汉字对照得文件可以通过Windows自带得程序获得。  
 
  |