如何更有效地组织、处理CSDN技术资料及文档(原创,附完整java源程序)

原创 2003年11月17日 09:38:00

如何更有效地组织、处理CSDN技术资料及文档(原创,附完整java源程序)

 我们知道,CSDN上面有很多精彩的文章。我们在平常浏览(或通过查询)的时候,可以随时将文章保存到本地硬盘。但是,当我们查询出很多文章时候,如果每一页都打开,再另存到硬盘上,很浪费时间。
 有的读者就采用netant等工具进行批量下载,但是文章下载回来之后,我们发现文章的标题并不是我希望的标题。如果我们采用网页的标题,就能根据标题有选择的进行阅读文章。
 我用java写了一个工具,将从CSDN下载的文章,文件名为:Read_Article.aspId=xxx,我们从文件名很难看出其内容。因此,需要将其改名为网页的标题。
 类名为:setHtmlFileName
 用法为:java setHtmlFileName yourdocpath
 你可以不写文档的路径,系统会采用当前路径。
 在处理时,采用直接将文件改名的方法。所以,在操作前,请做好原文件的备份。
 我使用的系统是:win2k+j2sdk1.4.0
 时间:2003-10-26 15:31
 如果你在使用的时候遇到问题,请与我联系。 
 email:jsczy@eyou.com
 QQ:19843788
 CSDN nickname:hajavaor
 
 程序特色:
   1、用户提供目录,自动将该目录下非htm的文件改为网页的标题。
   2、程序仅执行改名的操作,因此效率较高。
   3、充分考虑了文件名的合性性的验证
   4、有重复文件,重新命名文件,格式为:原文件名+.复制_x.htm


   
   

附源文件:
 
<pre>
//author: hajavaor(CSDN nickname)
//name:caozhaoyong, Beijing
//date:2003-10-26 15:31
//mail:jsczy@eyou.com
//QQ:19843788
//file name:setHtmlFileName.java

import java.io.*;
public class setHtmlFileName{
 public static void main(String args[]) {
  String strUserPath = System.getProperty("user.dir");
  File dir=null;
  String strFilePath=null;

  if (args.length!=0){   
   strUserPath = args[0].trim();
  }

  try{
   dir = new File(strUserPath);
  }
  catch(Exception ex){
   System.err.println("error:"+ex.getMessage());
   System.exit(0);
  }
  String strWorkingPath=null;
  
  if (dir.getAbsoluteFile().getParent()==null){
   strWorkingPath = dir.getAbsoluteFile().getParent()+"//"+ dir.getPath();
  }
  else{
   strWorkingPath = dir.getPath();
  }
  
  System.out.println("Working directory is:"+strWorkingPath);
  System.out.println("================================");

  if (dir.isDirectory()==false){
   System.out.println("Bad directory. Consult to the Usage.");
   System.exit(0);
  }

  File files[]=null;
  files = dir.listFiles();
  BufferedReader br = null;
  String strFileContent=null;
  String strMid =null;
  String strFileName=null;
  String strFileFullName=null;
  int iFileBegin=-1;
  int iFileEnd=-1;
  File newFile=null;
  int iFilesChanged=0;
  for(int i=0;i<files.length;i++){
   if ((files[i].isFile()) && (!files[i].getName().endsWith(".htm"))){
    try{
     System.out.print("*"+files[i].getName()+"-->");
     strFileName="";
     strFileContent="";
     br = new BufferedReader(new FileReader(files[i]));
     strMid="";
     while ((strMid=br.readLine())!=null){
      strFileContent+=strMid;
      if (strFileContent.indexOf("</title>")!=-1){break;}
      strMid=br.readLine();
     }
     br.close();
     //read title
     iFileBegin = strFileContent.indexOf("<title>");
     iFileEnd=strFileContent.indexOf("</title>");
     if ((iFileBegin!=-1) &&(iFileEnd !=-1)){
      strFileName = strFileContent.substring(iFileBegin+7,iFileEnd);
      strFileName=strFileName.replaceAll("CSDN_文档中心_","");
      //replace some un-support chars in the file name.
      strFileName=strFileName.replaceAll("<","《");
            strFileName=strFileName.replaceAll(">","》");
            strFileName=strFileName.replaceAll("/"","“");
            strFileName=strFileName.replaceAll(":",":");
            strFileName = replaceString(strFileName,'//',"、");
            strFileName = replaceString(strFileName,'/',"/");
            strFileName = replaceString(strFileName,'*',"*");
            strFileName = replaceString(strFileName,'?',"?");
            strFileName = replaceString(strFileName,'|',"|");
      //begin to manipulate files.      
      strFileFullName=strWorkingPath+"//"+strFileName;
      newFile = new File(strFileFullName+".htm");      
      if (newFile.exists()){
       strFileName+=".复制_";
       for(int j=1;;j++){        
        strFileFullName =strWorkingPath +"//"+ strFileName+j;
        newFile = new File(strFileFullName+".htm");
        if (newFile.exists()==false) {
         strFileName+=j;
         break;
        }
       }
      }
      System.out.print(strFileName+".htm--");
      
      if (files[i].renameTo(new File(strFileFullName+".htm"))){
       System.out.println("ok.");
      }
      else{
       System.out.println("failed.");
      }
      iFilesChanged++;
     }
    }
    catch(Exception ex){
     System.out.print("failed. err:"+ex.getMessage());
    }
   }
  }
  System.out.println("================================");
  System.out.println("Job finished. Changed Files:"+iFilesChanged);

 }

 public static String replaceString(String strSource,char char1,String str){
        while (strSource.indexOf(char1)!=-1){
         strSource=strSource.replace(char1,'~');
         strSource=strSource.replaceAll("~",str);
        }
        return strSource;
 }
}

//---the end of the program.

</pre>

Unity3D如何有效地组织代码?

Unity3D如何有效地组织代码? 本文整理自知乎,原文链接:http://www.zhihu.com/question/21070379 问题: Unity3D可以说是高度的Compon...
  • luxiaoyu_sdc
  • luxiaoyu_sdc
  • 2014年03月13日 10:56
  • 2769

Unity3D如何有效地组织代码

准确地说,代码作为Unity项目里的一种资源,此问题应该扩展到如何组织Unity资源。简单说说我们的经验: - Unity有一些自身的约定,譬如项目里的Editor,Plugins等目录作为...
  • zhaoguanghui2012
  • zhaoguanghui2012
  • 2016年01月18日 11:57
  • 617

如何更有效地阅读

读书的好处时显而易见的。现代社会竞争异常激烈,要想获得发展或在职位上获得提升,说的更直白一点就是要想获得高工资,必须要有核心竞争力。这种竞争力除 了在工作岗位上磨练以外,更需要读书,依靠读书在提高专业...
  • fangix
  • fangix
  • 2011年10月31日 18:39
  • 270

unity3d如何 有效地组织代码

准确地说,代码作为Unity项目里的一种资源,此问题应该扩展到如何组织Unity资源。简单说说我们的经验: - Unity有一些自身的约定,譬如项目里的Editor,Plugins等目录作为编辑...
  • woailvmengmeng
  • woailvmengmeng
  • 2013年11月18日 16:32
  • 929

unity3d如何有效地组织代码?

【提问】unity3d如何有效地组织代码? Unity3D可以说是高度的Component-Based Architecture, 同时它的库提供了大量的全局变量。 这些都和我曾接触到的...
  • Hi_Style
  • Hi_Style
  • 2014年05月08日 10:04
  • 892

从csdn的原创文章被扒说起

我居然都6年---不在csdn发文了.. 只是,我已经没有太多兴趣使用阿里,如果不是被阿里收购的万网有我几个域名,我会永远afk阿里。更别谈什么打败阿里。...
  • loadfuture
  • loadfuture
  • 2017年03月07日 17:33
  • 225

项目组织与分工

项目经理(PM) 项目经理负责项目的具体实施管理工作,是项目实施中最主要的角色。他的主要责任是: ·         选定项目小组成员; ·         协调项目资源配置; ·      ...
  • xianyu_0418
  • xianyu_0418
  • 2011年09月07日 09:32
  • 2793

如何更有效地使用kindle?

本文介绍作者在使用Kindle过程中的一些工具和技巧,从而使读书过程更有效率。...
  • fangdora
  • fangdora
  • 2016年07月04日 15:14
  • 165

如何有效地阅读python文档

python是一门很轻巧、简单易上手的语言,有很多很成熟的第三方库。那么,作为菜鸟选手,如何有效地学习第三方库文档呢? 如果盲目靠百度,虽然会有一定收获,但是往往会浪费很多时间,效率不高。 介绍两...
  • xiaowudalianmao_mm
  • xiaowudalianmao_mm
  • 2015年11月26日 15:26
  • 291

声明:关于原创与转载的标注

声明:本blog多采用word发布blog,对转载文章因office未提供此选项,常自动发布为原创,尽管本人已经在文章醒目位置(头部或者尾部)标注转载位置,但仍不可避免对原创作者造成精神损失。本人会尽...
  • jo_say
  • jo_say
  • 2011年05月23日 13:44
  • 628
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何更有效地组织、处理CSDN技术资料及文档(原创,附完整java源程序)
举报原因:
原因补充:

(最多只允许输入30个字)