• 大小: 22KB
    文件类型: .cs
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: C#
  • 标签: C#  FTP  上传  下载  

资源简介

首先得搭建一个FTP服务器,然后若想对服务器或本地文件进行FTP上传、下载、创建目录、重命名、删除文件操作,则本文档中的方法将会对你起到一定的作用。

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Net;
using System.Diagnostics;
using System.Text.Regularexpressions;
using System.Web;

/// 
///FtpManager 的摘要说明
/// 

public class FtpManager
{
    /// 
    /// 委托,用于标识当前文件下载百分比
    /// 

    /// 当前文件下载百分比
    //public  delegate void DelegateDldPercentage(double dldPercentage);

    /// 
    /// 当前下载文件百分比
    /// 

    //public static event DelegateDldPercentage EDldPercentage;

    /// 
    /// 下载文件
    /// 

    /// 下载到本地的路径
    /// 要下载
    /// 
    /// 
    /// 
    public static bool DownloadFile(string saveFilePath string filePath string ftpServerIP string ftpUserName string ftpPwd)
    {
        if (!Directory.Exists(saveFilePath) && saveFilePath != ““ && saveFilePath != null)
        {
            Directory.CreateDirectory(saveFilePath);
        }
        FileInfo info = new FileInfo(filePath);
        using (FileStream OutputStream = new FileStream(saveFilePath + “/“ + info.Name FileMode.Create))        
        {
            try
            {
                FtpWebRequest ReqFTP = (FtpWebRequest)FtpWebRequest.Create(“ftp://“ + ftpServerIP + “/“ + filePath);
                ReqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
                ReqFTP.UseBinary = true;
                ReqFTP.Credentials = new NetworkCredential(ftpUserName ftpPwd);

                using (FtpWebResponse response = (FtpWebResponse)ReqFTP.GetResponse())
                {
                    ////当前已下载文件百分比
                    //double currentPercentage = 0;
                    ////当前已下载文件大小
                    //long currentDldBytes = 0;
                    //文件大小
                    string FtpFilePath = “ftp://“ + ftpServerIP + “/“ + filePath;
                    long fileLength = GetFileLength(FtpFilePath ftpServerIP ftpUserName ftpPwd);
                    using (Stream FtpStream = response.GetResponseStream())
                    {
                        //long Cl = response.ContentLength;
                        int bufferSize = 2048;
                        int readCount;
                        byte[] buffer = new byte[bufferSize];
                        readCount = FtpStream.Read(buffer 0 bufferSize);
                        while (readCount > 0)
                        {
                            //EDldPercentage(currentPercentage);
                            OutputStream.Write(buffer 0 readCount);
                            readCount = FtpStream.Read(buffer 0 bufferSize);
                            //currentDldBytes += readCount;
                            //currentPercentage = (

评论

共有 条评论