WEB开发网
开发学院WEB开发Jsp 用Java将文件名从中文转为拼音 阅读

用Java将文件名从中文转为拼音

 2008-01-05 20:08:35 来源:WEB开发网   
核心提示:将指定目录下面得所有文件名从中文转化为拼音,并保存为Html,用Java将文件名从中文转为拼音,其中拼音和汉字对照得文件可以通过Windows自带得程序获得,又是一个小程序

  将指定目录下面得所有文件名从中文转化为拼音,并保存为Html,其中拼音和汉字对照得文件可以通过Windows自带得程序获得。又是一个小程序。



  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() + "\\";  

Tags:Java 文件名

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接