zoukankan      html  css  js  c++  java
  • C# -- FTP上传下载

    C# -- FTP上传下载

    1. C#实现FTP下载

    private static void TestFtpDownloadFile(string strFtpPath, string strFileName, string strFtpUser, string strFtpPassWord, string strSaveFileName)
    {
        FtpWebRequest ftpWebRequest = (FtpWebRequest)FtpWebRequest.Create(strFtpPath + strFileName);
        ftpWebRequest.Credentials = new System.Net.NetworkCredential(strFtpUser, strFtpPassWord);
        ftpWebRequest.UseBinary = true;
        ftpWebRequest.UsePassive = true;
        ftpWebRequest.KeepAlive = true;
    
        ftpWebRequest.Method = WebRequestMethods.Ftp.DownloadFile;
    
        FtpWebResponse ftpWebResponse = (FtpWebResponse)ftpWebRequest.GetResponse();
        Stream ftpStream = ftpWebResponse.GetResponseStream();
    
        FileStream localFileStream = new FileStream(strSaveFileName, FileMode.Create);
    
        int bufferSize = 1 * 1024 * 1024;
    
        byte[] byteBuffer = new byte[bufferSize];
        int bytesRead = ftpStream.Read(byteBuffer, 0, bufferSize);
        try
        {
            while (bytesRead > 0)
            {
                localFileStream.Write(byteBuffer, 0, bytesRead);
                bytesRead = ftpStream.Read(byteBuffer, 0, bufferSize);
            }
        }
        catch (Exception ex) { Console.WriteLine(ex.ToString()); }
    
        localFileStream.Close();
        ftpStream.Close();
        ftpWebResponse.Close();
        ftpWebRequest = null;
    
        Console.WriteLine("下载完成 ");
    }

    2. C#实现FTP上传

    private static void TestFtpUploadFile(string strFtpPath, string strFileName, string strFtpUser, string strFtpPassWord, string strUploadFileName)
    {
        FileInfo uploadFileInfo = new FileInfo(strUploadFileName);
        FtpWebRequest ftpWebRequest = (FtpWebRequest)FtpWebRequest.Create(strFtpPath + strFileName);
    
        ftpWebRequest.UseBinary = true;
        ftpWebRequest.Credentials = new NetworkCredential(strFtpUser, strFtpPassWord);
        ftpWebRequest.KeepAlive = false;
        ftpWebRequest.Method = WebRequestMethods.Ftp.UploadFile;
        ftpWebRequest.ContentLength = uploadFileInfo.Length;
    
        Stream ftpStream = ftpWebRequest.GetRequestStream();
    
        FileStream uploadFileReadStream = uploadFileInfo.OpenRead();
    
        int bufferSize = 1 * 1024 * 1024;
    
        byte[] byteBuffer = new byte[bufferSize];
        int bytesRead = uploadFileReadStream.Read(byteBuffer, 0, bufferSize);
        try
        {
            while (bytesRead > 0)
            {
                ftpStream.Write(byteBuffer, 0, bytesRead);
                bytesRead = uploadFileReadStream.Read(byteBuffer, 0, bufferSize);
            }
        }
        catch (Exception ex) { Console.WriteLine(ex.ToString()); }
    
        ftpStream.Close();
        uploadFileReadStream.Close();
        ftpWebRequest = null;
    
        Console.WriteLine("上传完成 ");
    }
  • 相关阅读:
    函数调用栈的总结
    Calling convention-调用约定
    函数可以返回结构体的原因
    pthread_join/pthread_exit的用法解析
    线程退出的几种方式和资源回收【线程编程中避免内存泄漏】
    线程状态与tcb、线程的生命周期
    pthread_cleanup_push vs Autorelease VS 异常处理
    thread.h
    Thread Control Block
    线程与cpu
  • 原文地址:https://www.cnblogs.com/ChengWenHao/p/CSharpFtpDownloadAndUpload.html
Copyright © 2011-2022 走看看