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

C#相关FTP操作的更多相关文章

  1. 【转载】C#工具类:FTP操作辅助类FTPHelper

    FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样.可以通过C#中的FtpWebRequest类.NetworkCredential类.We ...

  2. 重新想象 Windows 8 Store Apps (70) - 其它: 文件压缩和解压缩, 与 Windows 商店相关的操作, app 与 web, 几个 Core 的应用, 页面的生命周期和程序的生命周期

    [源码下载] 重新想象 Windows 8 Store Apps (70) - 其它: 文件压缩和解压缩, 与 Windows 商店相关的操作, app 与 web, 几个 Core 的应用, 页面的 ...

  3. PHP FTP操作类( 上传、拷贝、移动、删除文件/创建目录 )

    /** * 作用:FTP操作类( 拷贝.移动.删除文件/创建目录 ) * 时间:2006/5/9 * 作者:欣然随风 * QQ:276624915 */ class class_ftp { publi ...

  4. 关于C#和ASP.NET中对App.config和Web.config文件里的[appSettings]和[connectionStrings]节点进行新增、修改、删除和读取相关的操作

    最近我做的一些项目,经常需要用到对应用程序的配置文件操作,如app.config和web.config的配置文件,特别是对配置文件中的[appSettings]和[connectionStrings] ...

  5. C# FTP操作

    using System; using System.Collections.Generic; using System.Net; using System.IO; namespace FTP操作 { ...

  6. 关于FTP操作的功能类

    自己在用的FTP类,实现了检查FTP链接以及返回FTP没有反应的情况. public delegate void ShowError(string content, string title); // ...

  7. C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET

    C++ STL中Map的相关排序操作:按Key排序和按Value排序 - 编程小径 - 博客频道 - CSDN.NET C++ STL中Map的相关排序操作:按Key排序和按Value排序 分类: C ...

  8. FtpHelper ftp操作类库

    FtpHelper ftp操作类库 using System; using System.Collections.Generic; using System.Linq; using System.Te ...

  9. C# FTP操作类的代码

    如下代码是关于C# FTP操作类的代码.using System;using System.Collections.Generic;using System.Text;using System.Net ...

随机推荐

  1. LeetCode(112):路径总和

    Easy! 题目描述: 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及 ...

  2. thymleaf模板截取日期的年月日,去掉时分秒

    简单描述:浏览同事提交的代码,发现他的日期回显中有一行代码,只截取到了年月日,记录一下 代码: //HTML代码 <span th:text="${#strings.substring ...

  3. 动态获取后台传过来的值作为select选项

    问题描述:点击左侧菜单项,进入对应的具体页面a.html,页面上方有个select框,点击框后,会浮现选择项. 解决思路:对左侧菜单项添加一个onclick事件,进入后台做具体的查询,将查询到的lis ...

  4. java读取.txt文件工具类FileUtiles

    public class FileUtils { private static final String ENCODING = "UTF-8";//编码方式 /** * 获取文件的 ...

  5. java 数据类型相关的内容

    √基本数据默认值是:0 √ 引用类型是默认值:null 局部变量不能初始化 单精度浮点有后缀: Flong后面如果不加后缀L系统将默认为int类型 不管单精度还是双精度浮点,都比整数类型的范围大,原因 ...

  6. 简单有效:解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG

    https://blog.csdn.net/Sukie_csdn/article/details/78752969

  7. mysql中cast() 和convert()的用法讲解

    一.在mysql操作中我们经常需要对数据进行类型转换.此时我们应该使用的是cast()或convert(). 二.两者的对比 相同点:都是进行数据类型转换,实现的功能基本等同 不同点:两者的语法不同, ...

  8. bzoj4773: 负环

    题解: 网上还有一种spfa+深度限制的算法 https://www.cnblogs.com/BearChild/p/6624302.html 是不加队列优化的spfa,我觉得复杂度上限是bellma ...

  9. [转]JAVA实现SFTP实例

    http://www.cnblogs.com/chen1987lei/archive/2010/11/26/1888384.html 最近写的一个JAVA实现SFTP的实例: /** Created ...

  10. Windows下Mongodb启动问题

    把mongodb安装完,运行server出现问题