网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C#应用
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.用C#实现智能设备上的NotifyIcon.
.c#远程获取网页内容.
.QQ聊天记录保护器制作全过程.
.从小处看C#.net垃圾回收.
.C# 存取数据库中的图像.
.发送邮件程序(Csharp2005).
.在指定应用程序域中执行代码.
.关于正则表达式匹配无异常资源耗.
.C#实现Socket传输简单数据.
.在C#中动态调用native dll的导出.
.C#当调用Remove失效时.
.C#多线程-不同线程之间通过事件委.
.c#中什么情况下用(int)什么情况下.
.C#中对注册表的操作.
.国外C#开源系统一览表.
.使用C#开发用户控制.
.Visual C#的SQL Server编程.
.利用c#制作简单的留言板(3).
.C#的Windows编程中多语言的实现.
.用C#实现木马程序.

用C#实现FTP搜索引擎

发表日期:2005-12-12


晚辈最近用C#写了一个教育网FTP搜索引擎,希望能得到高手的指点。

网址:http://soso.ccnu.com.cn      http://it.ccnu.edu.cn/soso

部分代码:

using System;
using softplib;
using System.Threading;
using System.Collections;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Data;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
namespace spider
{
 /// <summary>
 /// IndexClass 的摘要说明。
 /// </summary>
 //编制索引类
 class IndexClass
 {
  private IPAddress ip;
  private string name;
  private SqlProcedure sp;
  public IndexClass(IPAddress _ip,string _name)
  {
   ip=_ip;
   name=_name;
  
  }

  public void createIndex()
  {
   FTPFactory ff = new FTPFactory();
   ff.setDebug(false);
   string header="ftp://"+ip.ToString();
   string address=name;
   try
   {
    ff.setRemoteHost(ip.ToString());
    ff.login();
    Queue q=new Queue();
    ArrayList fileNames=ff.getFileList("*.*");
    ArrayList subdirNames=ff.getSubdir("*",ref fileNames);
    if(fileNames!=null && fileNames.Count>0)
     foreach(string s in fileNames)
     {
     
      try
      {
       Console.WriteLine(header+"/"+s);
       int h=-1;
       long _size=0;
       try
       {
        _size=ff.getFileSize(s);
        h=s.IndexOf("/");
       }
       catch
       {
        _size=0;
        Console.WriteLine("size error");
       }


       if(s!=null && s.Trim()!="")
       {
        DataUnit datau=new DataUnit(s,_size,header+"/",DateTime.Now,ip.ToString(),address);
        Class1.DataQueue.Enqueue(datau);
       }
      }
      catch(Exception ex){Console.WriteLine(ex.Message);};
     }
    if(subdirNames!=null && subdirNames.Count>0)
     foreach(string s in subdirNames)
     {
      if(s.Equals("..") || s.Equals("."))continue;
      if(s!=null && s.Trim()!="")
      {
       q.Enqueue("/"+s);
       DataUnit datau=new DataUnit(s,(long)0,header+"/",DateTime.Now.AddHours(1),ip.ToString(),address);
       Class1.DataQueue.Enqueue(datau);
      }
     }
    while(q.Count>0)
    {
     string parent=q.Dequeue() as string;
     //Console.WriteLine("change to "+parent.Trim());

     try
     {
      ff.chdir(parent.Trim());
     
     }
     catch
     {
      Console.WriteLine(parent.Trim());
      ff.setRemoteHost(ip.ToString());
      ff.login();
      Console.WriteLine("=======Continue========");
      continue;
     }
     fileNames=ff.getFileList("*.*");
     subdirNames=ff.getSubdir("*",ref fileNames);
     if(fileNames!=null && fileNames.Count>0)
      foreach(string s in fileNames)
      {
     
       try
       {
        Console.WriteLine(header+parent+"/"+s);
        long _size=0;
        int h=-1;
        try
        {
         _size=ff.getFileSize(s);
         h=s.IndexOf("/");
        }
        catch
        {
         _size=0;
         Console.WriteLine("size error");
        }
        if(s!=null && s.Trim()!="")
        {
         DataUnit datau=new DataUnit(s,_size,header+parent+"/",DateTime.Now,ip.ToString(),address);
         Class1.DataQueue.Enqueue(datau);
        }
       
       }
       catch(Exception ex)
       {
        Console.WriteLine(ex.Message);
        ff.setRemoteHost(ip.ToString());
        ff.login();
        ff.chdir(parent.Trim());
        Console.WriteLine("=======Continue========");
        continue;
       };
      }
     if(subdirNames!=null && subdirNames.Count>0)
      foreach(string s in subdirNames)
      {
       if(s.Equals("..") || s.Equals(".") || s.StartsWith("\0"))continue;
       if(s!=null && s.Trim()!="")
       {
        q.Enqueue(parent+"/"+s);     
        DataUnit datau=new DataUnit(s,(long)0,header+parent+"/",DateTime.Now.AddHours(1),ip.ToString(),address);
        Class1.DataQueue.Enqueue(datau);
       }
      }
    }
  
    ff.close();
   }
   catch(Exception ex)
   {
    Console.WriteLine(ex.Message);
   };
  }
 }
}

上一篇:对C# 2.0中匿名方法的怀疑分析 人气:7371
下一篇:C# Google PageRank .net库 (checksum) 人气:8585
浏览全部C#的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐