zoukankan      html  css  js  c++  java
  • 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();

  • 相关阅读:
    在mac守护进程中启动一个新进程
    OBS源码解析(3)OBSApp类介绍
    缩略图预览mini库
    Web Sql database 本地数据库
    React入口详解
    网页全屏显示
    使用cheerio爬数据兼容gbk和utf8
    前端自动化grunt的使用
    Emmet 神一样的sublime text插件
    BFC(Block Formatting Context)理解
  • 原文地址:https://www.cnblogs.com/lhking/p/1444706.html
Copyright © 2011-2022 走看看