ftp协议专门用于文件的上传、下载,效率更高。而它的端口号一般为21,http也是一种协议,而它的端口号为80。sql server:133 oracle:1521
登录FTP一般需要用户名、密码,根据用户名的不同有不同的权限(文件:上传、下载、删除、附加;目录:创建、删除),不同的用户可以看不同的目录;如果不输入用户名则认为是匿名用户,其实就是用户名为Anonymous的用户,匿名用户一般只给下载权限。
如何运用程序对ftp进行操作呢?
1、Net中内置的操作FTP的类有:WebClient、FtpWebRequest。WebClient用起来简单,但是只能上传、下载。 FtpWebRequest 比较强大,WebClient内部就是调用FtpWebRequest实现的,如果要实现遍历ftp文件、创建ftp文件夹等就要用FtpWebRequest 。或者是FtpClient类
WebClient也可以下载Http网页、上传Http文件,后面站内搜索、采集器项目中还将会用到。在讲正则表达式的应用,抓取数据的时候应用到此类。在正则中应用到的类还有Regex这个类,运用此类的方法可以判断一个字符串是否匹配一个正则表达式等。
代码:
#region WebClient下载
//WebClient client = new WebClient();
创建连接到ftp服务器的网络凭证
//client.Credentials = new NetworkCredential("lyc", "lyc");
连接到ftp服务器,并下载所需资源
//client.DownloadFile("ftp://172.22.**.**/Word List 1/Word list 1.MP3", @"E:\Word list 1.MP3");
//Console.WriteLine("下载成功");
#endregion
#region WebClient上传
//WebClient client = new WebClient();
//client.Credentials = new NetworkCredential("lyc", "lyc");
第一个参数表示要上传到的服务器的地址,注意需要自己定义上传之后的文件名称,第二参数表示姚上传的本地文件路径
//client.UploadFile("ftp://172.22.**.**/Word List 1/qie.jpg", @"C:\Users\Public\Pictures\Sample Pictures\Penguins.jpg");
//Console.WriteLine("上传成功");
#endregion
webclient只能进行简单的下载,上传工作,所以我们可以用FtpClient进行操作。FtpClient类是手写,开源的。类中有很多方法可以进行很多操作。
写的用户必须要有下载、上传等访问权限。
实例代码:
#region FtpClient下载
//FtpClient client = new FtpClient("172.22.**.**", "lyc", "lyc");
bool result= client.Download("qie.jpg", @"E:\ftpfiles\企鹅.jpg");
//bool result = client.Download("Word List 10/Word List 10.MP3", @"E:\ftpfiles\Word List 10.MP3");
//if (result)
//{
// Console.WriteLine("下载成功");
//}
//else
//{
// Console.WriteLine("下载失败");
//}
#endregion
#region FtpClient上传
FtpClient client = new FtpClient("172.22.**.**", "lyc", "lyc");
//在服务器上创建目录newfile,如果创建成功,则将文件上传到新创建的文件夹下面
if (client.MakeDirectory("newfile"))
{
FileInfo file = new FileInfo(@"F:\soft\ASCII码表完整版.doc");
//第一个参数是fileInfo类型,第二个参数是要保存到的服务器上目录以及文件名称
bool result = client.Upload(file, "newfile/ASCII码表完整版.doc");
if (result)
{
Console.WriteLine("上传成功");
}
else
{
Console.WriteLine("上传失败");
}
}
else
{
Console.WriteLine("目录创建失败");
}
#endregion
Console.ReadKey();
}
}
}