• C# 实现FTP上传与下载


    向FTP服务器下载文件的简单实例

    Code
    string filePath = "d:\\";
                
    string fileName = "lhking.txt"//文件下载之后要保存的路径和文件名
                FtpWebRequest reqFTP;
                
    try
                {
                    FileStream outputStream 
    = new FileStream(filePath +"\\" + fileName, FileMode.Create);
                    
    string filename = "ip.txt";
                    
    string ftpServerIP = "222.76.217.24";
                    reqFTP 
    = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" +ftpServerIP + "/" + filename));
                    reqFTP.Method 
    = WebRequestMethods.Ftp.DownloadFile;
                    reqFTP.UseBinary 
    = true;
                    reqFTP.Credentials 
    = new NetworkCredential("l","l");

                    FtpWebResponse response 
    = (FtpWebResponse)reqFTP.GetResponse();
                    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)
                    {
                        outputStream.Write(buffer, 
    0, readCount);
                        readCount 
    = ftpStream.Read(buffer, 0, bufferSize);
                    }
                    ftpStream.Close();
                    outputStream.Close();
                    response.Close();
                }
                
    catch (Exception err) 
                { 
                    MessageBox.Show(err.Message,
    "Download Error");
                }


    向FTP服务器上传文件的简单实例

    Code
    string filename = "ip.txt";
                
    string ftpServerIP = "222.76.217.24";
                FileInfo fileInf 
    = new FileInfo(filename);
                
    string uri = "ftp://" + ftpServerIP + "/" + fileInf.Name;
                FtpWebRequest reqFTP;
                reqFTP 
    = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + fileInf.Name));
                reqFTP.Credentials 
    = new NetworkCredential("l","l");
                reqFTP.KeepAlive 
    = false;
                reqFTP.Method 
    = WebRequestMethods.Ftp.UploadFile;
                reqFTP.UseBinary 
    = true;
                reqFTP.ContentLength 
    = fileInf.Length;

                
    int buffLength = 2048;
                
    byte[] buff = new byte[buffLength];
                
    int contentLen;
                FileStream fs 
    = fileInf.OpenRead();
                
    try
                {
                    Stream strm 
    = reqFTP.GetRequestStream();
                    contentLen 
    = fs.Read(buff, 0, buffLength);
                    
    while (contentLen != 0)
                    {
                        strm.Write(buff, 
    0, contentLen);
                        contentLen 
    = fs.Read(buff, 0, buffLength);
                    }
                    strm.Close();
                    fs.Close();
                }
                
    catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, 
    "Upload Error");
                }

    如果想把Stream转换为字符串的话,下面这样写就行了。
                    StreamReader sr = new StreamReader(ftpStream, Encoding.Default);
                    string str = sr.ReadToEnd();

  • 相关阅读:
    移动端应用rem定义相对长度单位
    ionic4(angular) 生成browser平台的(webApp)在手机QQ浏览器不更新页面
    解决 git bash命令行执行git命令一直报错 segmentation fault
    MACBOOK OSX升级到10.15.3 Catalina 后 photoshop CS6(32位)不能用了
    自制操作系统笔记-第三章
    自制操作系统笔记-第2章
    自制操作系统笔记-第一章
    Vue学习笔记
    解决 MAC 终端上每次打开新窗口手动执行source ~/.bash_profile导出环境变量
    HTTPS的安全性
  • 原文地址:https://www.cnblogs.com/lhking/p/1444706.html
Copyright © 2020-2023  润新知