ftp协议的简单介绍以及相关操作

来源:互联网 发布:ps4应用程序数据损坏 编辑:程序博客网 时间:2024/05/01 20:18


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();
           
        }
    }
}


0 0
原创粉丝点击