⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftpclient.cs

📁 本软件是一个以FTP形式上传下载资料的软件
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;

namespace ftpTransport
{
    class ftpClient
    {
        //测试服务器能否打开
        public string testConnection(string server,string port,string username,string password)
        {
            FtpWebResponse response;
            //string test = "";
            try
            {
                string fullUrl = server + ":" + port;
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(fullUrl);
                request.Credentials = new NetworkCredential(username, password);
                request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
                response = (FtpWebResponse)request.GetResponse();
                //test = response.StatusDescription;
                string rval = response.WelcomeMessage;
                response.Close();
                return "登陆成功!";
                //return rval + " " + test ;
            }
            catch (Exception ex)
            {
                return "失败:" + ex.Message;
            }
        }
        //得到服务器上文件名列表
        public string []  GetFileList()
        {
            FtpWebResponse response=null;
            StreamReader reader = null;
            string server = Properties.Settings.Default.ftpServer;
            string port = Properties.Settings.Default.ftpPort;
            string userName = Properties.Settings.Default.ftpUser;
            string password = Properties.Settings.Default.ftpPassword;
            //创建ftpwebrequest对象
            string fullUrl = server +":" + port;
            try
            {
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(fullUrl);
                request.Credentials = new NetworkCredential(userName, password);
                request.Method = WebRequestMethods.Ftp.ListDirectory;
                //向服务器发送请求
                response = (FtpWebResponse)request.GetResponse();
                //从请求中读取数据
                Stream stream = response.GetResponseStream();
                reader = new StreamReader(stream);
                string content = reader.ReadToEnd();
                string[] files = content.Split('\n');
                reader.Close();
                response.Close();
                return files;
            }
            catch (Exception ex)
            {
                ///if (response == null) return new string[] { "空" };
                if(reader !=null)
                reader.Close();
                if(response!=null)
                response.Close();
                MyIO.WriteLog("ftpClient.GetFileList() Error:" + ex.Message);
                return new string[] { "空" };
            }
        }

        //从服务器上下载文件
        public bool DownLoadFile(string url, string filename)
        {
            FtpWebResponse response = null;
            Stream inStream = null;
            Stream outStream = null;
            try
            {
                string fullFileName = url + "/" + filename;
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(fullFileName);
                string userName = Properties.Settings.Default.ftpUser;
                string password = Properties.Settings.Default.ftpPassword;
                request.Credentials = new NetworkCredential(userName, password);
                request.Method = WebRequestMethods.Ftp.DownloadFile;
                request.UseBinary = true;
                response = (FtpWebResponse)request.GetResponse();
                inStream = response.GetResponseStream();
                outStream = File.OpenWrite(Properties.Settings.Default.localFilePath);
                byte[] buffer = new byte[4096];
                int size = 0;
                while ((size = inStream.Read(buffer, 0, 4096)) > 0)
                {
                    outStream.Write(buffer, 0, size);
                }
                if (response != null)
                    response.Close();
                if (inStream != null)
                    inStream.Close();
                if (outStream != null)
                    outStream.Close();
                return true;
            }
            catch (Exception ex)
            {
                if (response != null)
                    response.Close();
                if (inStream != null)
                    inStream.Close();
                if (outStream != null)
                    outStream.Close();
                MyIO.WriteLog("ftpClient.DownLoadFile() Error:" + ex.Message);
                return false;
            }
        }
        //从服务器上下载文件
        public bool DownLoadFile(string filename)
        {
            string url = Properties.Settings.Default.ftpServer + ":" + Properties.Settings.Default.ftpPort;
            FtpWebResponse response = null;
            Stream inStream = null;
            Stream outStream = null;
            try
            {
                string fullFileName = url + "/" + filename;
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(fullFileName);
                string userName = Properties.Settings.Default.ftpUser;
                string password = Properties.Settings.Default.ftpPassword;
                request.Credentials = new NetworkCredential(userName, password);
                request.Method = WebRequestMethods.Ftp.DownloadFile;
                request.UseBinary = true;
                response = (FtpWebResponse)request.GetResponse();
                inStream = response.GetResponseStream();
                outStream = File.OpenWrite(Properties.Settings.Default.localFilePath+"\\"+filename);
                byte[] buffer = new byte[4096];
                int size = 0;
                while ((size = inStream.Read(buffer, 0, 4096)) > 0)
                {
                    outStream.Write(buffer, 0, size);
                }
                if (response != null)
                    response.Close();
                if (inStream != null)
                    inStream.Close();
                if (outStream != null)
                    outStream.Close();
                return true;
            }
            catch (Exception ex)
            {
                if (response != null)
                    response.Close();
                if (inStream != null)
                    inStream.Close();
                if (outStream != null)
                    outStream.Close();
                MyIO.WriteLog("ftpClient.DownLoadFile() Error:" + ex.Message);
                return false;
            }
        }

        //往服务器上写文件
        public bool UpLoadFile(string url, string filename,string localfilename)
        {
            FtpWebResponse response = null;
            Stream inStream = null;
            Stream outStream = null;
            try
            {
                string fullFileName = url + "/" + filename;
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(fullFileName);
                string userName = Properties.Settings.Default.ftpUser;
                string password = Properties.Settings.Default.ftpPassword;
                request.Credentials = new NetworkCredential(userName, password);
                request.Method = WebRequestMethods.Ftp.UploadFile;
                request.UseBinary = true;
                response = (FtpWebResponse)request.GetResponse();
                outStream = response.GetResponseStream();
                inStream = File.OpenWrite(Properties.Settings.Default.localFilePath + "/" + localfilename);
                byte[] buffer = new byte[4096];
                int size = 0;
                while ((size = inStream.Read(buffer, 0, 4096)) > 0)
                {
                    outStream.Write(buffer, 0, size);
                }
                if (response != null)
                    response.Close();
                if (inStream != null)
                    inStream.Close();
                if (outStream != null)
                    outStream.Close();
                return true;
            }
            catch (Exception ex)
            {
                if (response != null)
                    response.Close();
                if (inStream != null)
                    inStream.Close();
                if (outStream != null)
                    outStream.Close();
                MyIO.WriteLog("ftpClient.UpLoadFile() Error:" + ex.Message);
                return false;
            }
        }
        //往服务器上写文件
        public bool UpLoadFile(string filename,string localfilename)
        {
            string url = Properties.Settings.Default.ftpServer + ":" + Properties.Settings.Default.ftpPort;
            FtpWebResponse response = null;
            Stream inStream = null;
            Stream outStream = null;
            try
            {
                string fullFileName = url + "/" + filename;
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(fullFileName);
                string userName = Properties.Settings.Default.ftpUser;
                string password = Properties.Settings.Default.ftpPassword;
                request.Credentials = new NetworkCredential(userName, password);
                request.Method = WebRequestMethods.Ftp.UploadFile;
                request.UseBinary = true;
                //response = (FtpWebResponse)request.GetResponse();
                outStream = request.GetRequestStream();
                inStream = File.OpenRead(Properties.Settings.Default.localFilePath + "/" + localfilename);
                byte[] buffer = new byte[4096];
                int size = 0;
                while ((size = inStream.Read(buffer, 0, 4096)) > 0)
                {
                    outStream.Write(buffer, 0, size);
                }
                //if (response != null)
                //    response.Close();
                if (inStream != null)
                    inStream.Close();
                if (outStream != null)
                    outStream.Close();
                return true;
            }
            catch (Exception ex)
            {
                //if (response != null)
                //    response.Close();
                if (inStream != null)
                    inStream.Close();
                if (outStream != null)
                    outStream.Close();
                MyIO.WriteLog("ftpClient.UpLoadFile() Error:" + ex.Message);
                return false;
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -