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. jquery 中多选和全选

  2. poj3164 最小树形图板子题

    /* 思路很简单,也不知道哪里错了TAT */ /* N个点通过笛卡尔坐标表示 根节点是1,求最小树形图 */ #include<iostream> #include<cstdio& ...

  3. Fiddler抓包1-抓firefox上https请求

    前言 fiddler是一个很好的抓包工具,默认是抓http请求的,对于pc上的https请求,会提示网页不安全,这时候需要在浏览器上安装证书. 一.网页不安全 1.用fiddler抓包时候,打开百度网 ...

  4. linux添加自定义命令

    想添加一个命令, 比如我输入 cdms 按回车, 然后就执行了: cd /mnt/gopath/src/test/app/ 这条命令方法: vi /etc/bashrc 在文件末尾添加 alias c ...

  5. sass方式实现颜色平铺(红色--->紫色)

    <!DOCTYPE html><html lang="en"><head> <link rel="stylesheet" ...

  6. ajax-简单参数方法实现阴影效果

    注: 简单参数 (按照参数的数量和位置传递参数) 使用时按照位置.数量传递 shadow.js函数 //简单参数实现方式/** slices:阴影* opacity:透明度* zIndex:层级* * ...

  7. python目录和文件的列表清单

    import os # 通过给定的文件夹,列举出这个文件夹当中,所有的文件,以及文件夹,子文件夹当中的所有文件def listFilesToTxt(dir,file): # 1.列举出,当前给定的文件 ...

  8. net core 使用 rabbitmq

    windows环境安装: https://www.cnblogs.com/ericli-ericli/p/5902270.html .NET Core 使用RabbitMQ https://www.c ...

  9. Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

    1.window操作系统的eclipse运行wordcount程序出现如下所示的错误: Exception in thread "main" java.lang.Unsatisfi ...

  10. html5和html的区别

    最近看群里聊天聊得最火热的莫过于手机网站和html5这两个词.可能有人会问,这两者有什么关系呢?随着这移动互联网快速发展的时代,尤其是4G时代已经来临的时刻,加上微软对“XP系统”不提供更新补丁.维护 ...