C# Ftp文件处理
2014-01-03 15:15
239 查看
1.创建文件夹
注意 这个方法只能创建一层目录,如果要创建深层目录,只能迭代。
这个方法也可以用来判断某个目录是否存在(网上找了几个判断目录存在与否的方法,都有Bug,没解决掉)
如果文件夹已存在或者指定目录的父文件夹不存在,则抛出【远程服务器返回错误: (550) 文件不可用(例如,未找到文件,无法访问文件)。】
Ftp 读取文件到字符串中(下载)
Ftp 文件上传:
注意这一句[request.Proxy = null;]因为公司都是代理上网,所以如果不加这句话,就会报错误【使用 HTTP 代理时不支持请求的 FTP 命令。】
还有一点就是 ftp地址必须使用内网IP,而不是外网IP,否则会出现错误【无法解析此远程名称】
/// <summary> /// ftp创建文件夹(只能创建单层目录) /// </summary> /// <param name="Uri">IP服务地址</param> /// <param name="UserName">登陆账号</param> /// <param name="UserPass">密码</param> public static bool CreateDirectory(string Uri, string UserName, string UserPass) { try { FtpWebRequest FTP = (FtpWebRequest)FtpWebRequest.Create(Uri); FTP.Credentials = new NetworkCredential(UserName, UserPass); FTP.Proxy = null; FTP.KeepAlive = false; FTP.Method = WebRequestMethods.Ftp.MakeDirectory; FTP.UseBinary = true; FtpWebResponse response = FTP.GetResponse() as FtpWebResponse; response.Close(); return true; } catch { return false; } }
注意 这个方法只能创建一层目录,如果要创建深层目录,只能迭代。
这个方法也可以用来判断某个目录是否存在(网上找了几个判断目录存在与否的方法,都有Bug,没解决掉)
如果文件夹已存在或者指定目录的父文件夹不存在,则抛出【远程服务器返回错误: (550) 文件不可用(例如,未找到文件,无法访问文件)。】
Ftp 读取文件到字符串中(下载)
public String readerFtpFile(String ftp, String username, String password, String filename) { StringBuilder result = new StringBuilder(); FtpWebRequest reqFTP; try { String ftpserver = ftp + filename; reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpserver)); reqFTP.UsePassive = false; reqFTP.UseBinary = true; reqFTP.Credentials = new NetworkCredential(username, password); //reqFTP.Method?=?WebRequestMethods.Ftp.ListDirectory; reqFTP.Method?=?WebRequestMethods.Ftp.DownloadFile; FtpWebResponse fwResponse = (FtpWebResponse)reqFTP.GetResponse(); StreamReader reader = new StreamReader(fwResponse.GetResponseStream(),Encoding.UTF8); string line = reader.ReadLine(); while (line != null) { result.AppendLine(line); line = reader.ReadLine(); } result.Remove(result.ToString().LastIndexOf('\n'), 1); reader.Close(); fwResponse.Close(); return result.ToString(); } catch (Exception ex) { return result.ToString(); } }
Ftp 文件上传:
string url = string.Format("ftp://{0}/{1}/{2}", FtpIP, UploadPath,fileName); FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url); request.Credentials = new NetworkCredential(FtpUserName, FtpPwd); request.Proxy = null; request.Method = WebRequestMethods.Ftp.UploadFile; Stream stream = request.GetRequestStream(); stream.Write(bytes, 0, bytes.Length); stream.Close();
注意这一句[request.Proxy = null;]因为公司都是代理上网,所以如果不加这句话,就会报错误【使用 HTTP 代理时不支持请求的 FTP 命令。】
还有一点就是 ftp地址必须使用内网IP,而不是外网IP,否则会出现错误【无法解析此远程名称】
相关文章推荐
- C# FTP 自动创建目录/上传文件
- C# 递归遍历文件夹 查找文件并处理
- C# FTP操作类(获取文件和文件夹列表)
- C#对FTP的操作(上传,下载,重命名文件,删除文件,文件存在检查)
- C#文件操作、提取 、处理文件中数据
- ftp下载 入库 调存储过程处理 备份文件
- C#获取CSV文件内容对逗号和引号分隔的处理
- C# FTP上传文件报550异常解决方案
- c/s(C#)下Ftp的多文件上传及其上传进度(转载)
- .net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等
- C#实现Ftp各种操作(上传,下载,删除文件,创建目录,删除目录,获得文件列表)
- .Net/C# 封装磁盘目录文件搜索功能的工具类 (实现了与搜索相关的事件,以便插入客户处理代码)
- C#获取FTP文件详细备注信息
- C#获取远程FTP文件列表
- 从ftp指定目录下载文件的C#代码
- C#导入导出与处理Excel文件
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
- C# web项目添加*.ashx文件后报错处理
- Java语言操作FTP服务进行文件的处理
- FTP网站文件到本地的C#代码