zoukankan      html  css  js  c++  java
  • C#相关FTP操作

    C# 相关 FTP(File Transfer Protocol) 操作

    1.获取文件目录

    UsePassive:需要设置为false。 使用被动模式,因为客户端防火墙的存在,所以为了确保数据可以正常传输,所有采用被动模式。

    UseBinary:指示文件的传输类型,true 指示二进制数据,false指示数据为为本,默认为true。

        /// <summary>  
        /// 根据ftp路径返回目录下的文件名称
        /// </summary>  
        public string[] GetFilesDetailList(string path)
        {	
            List<string> listFileNames = new List<string>();
            FtpWebRequest ftp;
            ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri(path));
            ftp.UsePassive = false;
            //ftp.UseBinary = true;
            ftp.Credentials = new NetworkCredential("Skills", "Skills"); //用户名密码
            ftp.Method = WebRequestMethods.Ftp.ListDirectory; //只带文件名
    
            var stream = ftp.GetResponse().GetResponseStream();
    
            StreamReader reader = new StreamReader(stream);
            string line;
            while ((line = reader.ReadLine()) != null)
            {
                listFileNames.Add(line);
            }
            reader.Close();
            return listFileNames.ToArray();
        }
    

    2.下载文件

        /// <summary>  
        /// 下载文件
        /// </summary>  
        public void DownloadFile(string filePath)
        {
            FtpWebRequest ftp;
            ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri(filePath));
            ftp.UsePassive = false;
            ftp.UseBinary = true;
            ftp.Credentials = new NetworkCredential("Skills", "Skills"); //用户名密码
            ftp.Method = WebRequestMethods.Ftp.DownloadFile;
            Stream stream = ftp.GetResponse().GetResponseStream();
    
            //Save file
            string fileName = Path.GetFileName(filePath);
            FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate);
            int bufferSize = 1024;
            byte[] buffer = new byte[bufferSize];
            int readCount = stream.Read(buffer, 0, bufferSize);
            while (readCount > 0)
            {
                fs.Write(buffer, 0, readCount);
                readCount = stream.Read(buffer, 0, bufferSize);
            }
            fs.Close();
            stream.Close();
        }
    

    3.获取文件大小

            /// <summary>  
            /// 获取指定文件大小  
            /// </summary>  
            public long GetFileSize(string filename)
            {
                FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(filename));
                reqFTP.Method = WebRequestMethods.Ftp.GetFileSize; //获取文件大小
                reqFTP.UseBinary = true;
                reqFTP.Credentials = new NetworkCredential("Skills", "Skills");
                return reqFTP.GetResponse().ContentLength;
            }
    

    学习自:https://www.cnblogs.com/rushme/p/6690912.html

  • 相关阅读:
    HTML5 WebAudioAPI-实例(二)
    HTML5 WebAudioAPI简介(一)
    HTML5 <Audio/>标签Api整理(二)
    HTML5 <Audio>标签API整理(一)
    CSS3 box-sizing 属性
    CSS3新增Hsl、Hsla、Rgba色彩模式以及透明属性(转)
    CSS3 颜色值HSL表示方式&简单实例
    C#使用Process类调用外部程序(转)
    乐视手机查看运行内存方法、EUI(Eco User Interface)乐视系统查看手机运行内存方法
    HTML5媒体播放说明
  • 原文地址:https://www.cnblogs.com/-Tiger/p/8682592.html
Copyright © 2011-2022 走看看