• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
yoxking
yoxking Tech.
博客园    首页    新随笔    联系   管理    订阅  订阅

C#搜索抓取本地硬盘文件

问题描述:譬如说要搜索d:盘中的所有后缀为html的文件。这里只是简单实现一个抓取的类,大家可以根据需要自行扩展
关键是用到一个递归函数,依此搜索子文件夹下的文件,按照时间保存

public class SearchBase
    {

        
private SearchBase()
        {
        
        }
        
static int ra;

        
public static  void addSubDirectory(DirectoryInfo directory,string pattern)
        {
            
foreach (FileInfo fi in directory.GetFiles(pattern))
            {
                 addrelativeDocument(fi.FullName);
            }
            
foreach (DirectoryInfo di in directory.GetDirectories())
            {
                addSubDirectory(di,pattern);
            }
        }
        
public static  void addrelativeDocument(string path)
        {
            
string html;
            
using (StreamReader sr = new StreamReader(path, System.Text.Encoding.Default))
            {
                html 
= sr.ReadToEnd();
            }
            
string time=DateTime.Now.ToLongTimeString();
            
string[] timetopath=time.Split(':');
            
string newtime=null;
            
for(int i=0;i<timetopath.Length;i++)
            {
                newtime
+=timetopath[i].ToString();
            }
           newtime
+="("+ra+")";
            
string p=@"f:\files\"+newtime+".txt";
            
if(!File.Exists(p))
            {
                FileStream fs
=    new FileStream(p ,FileMode.Create,FileAccess.Write ) ;
                StreamWriter sw 
= new StreamWriter(fs);
                sw.Write(html);
                sw.Close() ;
                fs.Close() ;
            }
            ra
++;
        }
    }


前台这么简单调用就可以了
SearchBase.addSubDirectory(new DirectoryInfo(@"d:\"),"*.html");

另外,可以自己去加工搜索出来的文件,解析成xml文件,将其导入到数据库中,这个以后有空写篇随笔~

posted @ 2005-11-11 08:57  yoxking   阅读(346)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3