国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

用C#實(shí)現(xiàn)FTP搜索引擎

2019-11-18 19:05:04
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

晚輩最近用C#寫(xiě)了一個(gè)教育網(wǎng)FTP搜索引擎,希望能得到高手的指點(diǎn)。

網(wǎng)址: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 的摘要說(shuō)明。
 /// </summary>
 //編制索引類(lèi)
 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);
   };
  }
 }
}


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宣武区| 钟祥市| 彰化县| 屏东市| 潮州市| 包头市| 灌南县| 泽普县| 崇阳县| 柞水县| 沿河| 襄城县| 嵊州市| 瓦房店市| 五大连池市| 石台县| 平乡县| 德保县| 泊头市| 万安县| 全州县| 康马县| 黔南| 定襄县| 多伦县| 南汇区| 瑞安市| 丹东市| 手机| 民乐县| 隆子县| 噶尔县| 靖宇县| 黄浦区| 夏河县| 沁水县| 鞍山市| 乐陵市| 沙洋县| 西丰县| 噶尔县|