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();

  • 相关阅读:
    SAP Spartacus 自定义Popover指令,如何实现弹出对话框自动关闭功能
    SAP Spartacus B2B 页面信息提示图标的弹出窗口显示实现逻辑
    一个好用的 SAP UI5 本地打包(build)工具,自动生成Component-preload.js
    什么是 SAP UI5 的 Component-preload.js, 什么是Minification和Ugification
    云小课 | 一个三分钟快速定制OCR应用的神器,要不?
    JavaScript实现:如何写出漂亮的条件表达式
    想做测试工程师,这7件事你必须先知道
    比物理线程都好用的C++20的协程,你会用吗?
    解读 SSDB、LevelDB 和 RocksDB 到 GaussDB(for Redis) 的迁移
    数据中心太耗电,送你一个节能神器
  • 原文地址:https://www.cnblogs.com/lhking/p/1444706.html
Copyright © 2011-2022 走看看