用C#实现FTP搜索引擎
2007-06-06 19:19
393 查看
作者:Webmaster 来源:Linuxdby.com 点击:1 日期:2007-06-04 [收藏] [投稿]
IE是否经常中毒?推荐您 下载带有 Google 工具栏的 Firefox, 上网冲浪更惬意
晚辈最近用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);
};
}
}
}
IE是否经常中毒?推荐您 下载带有 Google 工具栏的 Firefox, 上网冲浪更惬意
晚辈最近用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#实现FTP搜索引擎
- c# 使用FtpWebRequest,FtpWebResponse ,Stream 实现获取文件列表及下载
- 【转】如何实现小型WEB搜索引擎(C# SQL Server全文检索 Asp.net)
- C# 使用WebRequest 实现FTP常用功能
- [C# 网络编程系列]专题十二:实现一个简单的FTP服务器
- c#实现的一个简单的FTP客户端
- C#版ftp方法实现类库代码
- C#实现FTP文件夹下载功能【转载】
- 关于c#连接ftp进行上传下载实现原理及代码
- FTP FileZilla Server 本地加密C# 实现
- C# FTP功能实现(转载)
- [转]FTP搜索引擎的设计与实现(优化版)
- ftp搜索引擎的设计和实现:5.1 CGI脚本(一)
- [回答sqzxcv 的]如何实现 c# 调用 搜索引擎
- C# 实现FTP clinet
- c#实现FTP上传
- 网络编程--ftp客户端的实现(c#版)
- c# 实现 ftp
- C#中实现FTP上传功能