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

  • 相关阅读:
    NDK 在 Android studio如何使用(Android studio NDK)
    懒人习惯之ButterKnife Zelezny
    Android 如何在Eclipse 引入外部纯Java项目(不是打成Jar使用)
    android:ellipsize="end" 失效或者 相关的Bug
    Python 父目录获取
    RecyclerView中实现headerView,footerView功能
    Win7/Win8.1右键菜单技巧:应用程序任意加
    使用android-resource-remover优化资源使用率和lint-result.xml如果导出
    Android Studio 1.1.0版本以上 优化编译
    关于Eclipse如何加入Gradle文件与Android Studio两个平台一起开发,工作目录不发生变化
  • 原文地址:https://www.cnblogs.com/lhking/p/1444706.html
Copyright © 2011-2022 走看看