FTP上传、下载(简单小例子)
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.IO;
- using System.Net;
- namespace FTPConsoleApplication
- {
- class Program
- {
- static void Main(string[] args)
- {
- //测试
- //DownloadFtp("优课.png");
- //UploadFtp("FTPConsoleApplication.exe.config");
- //SystemLog.logger("OK");
- }
- public static FtpStatusCode UploadFileInFTP(string filename)
- {
- Stream requestStream = null;
- FileStream fileStream = null;
- FtpWebResponse uploadResponse = null;
- FtpWebRequest uploadRequest = null;
- string serverIP;
- string userName;
- string password;
- string uploadurl;
- try
- {
- serverIP = System.Configuration.ConfigurationManager.AppSettings["FTPServerIP"];
- userName = System.Configuration.ConfigurationManager.AppSettings["UserName"];
- password = System.Configuration.ConfigurationManager.AppSettings["Password"];
- uploadurl = "ftp://" + serverIP + "/" + Path.GetFileName(filename);
- uploadRequest = (FtpWebRequest)WebRequest.Create(uploadurl);
- uploadRequest.Method = WebRequestMethods.Ftp.UploadFile;
- uploadRequest.Proxy = null;
- NetworkCredential nc = new NetworkCredential();
- nc.UserName = userName;
- nc.Password = password;
- uploadRequest.Credentials = nc;
- requestStream = uploadRequest.GetRequestStream();
- fileStream = File.Open(filename, FileMode.Open);
- byte[] buffer = new byte[];
- int bytesRead;
- while (true)
- {
- bytesRead = fileStream.Read(buffer, , buffer.Length);
- if (bytesRead == )
- {
- break;
- }
- requestStream.Write(buffer, , bytesRead);
- }
- requestStream.Close();
- uploadResponse = (FtpWebResponse)uploadRequest.GetResponse();
- return uploadResponse.StatusCode;
- }
- catch (Exception e)
- {
- SystemLog.logger(e.InnerException.Message);
- }
- finally
- {
- if (uploadResponse != null)
- {
- uploadResponse.Close();
- }
- if (fileStream != null)
- {
- fileStream.Close();
- }
- if (requestStream != null)
- {
- requestStream.Close();
- }
- }
- return FtpStatusCode.Undefined;
- }
- public static int UploadFtp(string filename)
- {
- FtpWebRequest reqFTP = null;
- string serverIP;
- string userName;
- string password;
- string url;
- try
- {
- FileInfo fileInf = new FileInfo(filename);
- serverIP = System.Configuration.ConfigurationManager.AppSettings["FTPServerIP"];
- userName = System.Configuration.ConfigurationManager.AppSettings["UserName"];
- password = System.Configuration.ConfigurationManager.AppSettings["Password"];
- url = "ftp://" + serverIP + "/" + Path.GetFileName(filename);
- reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(url));
- reqFTP.Credentials = new NetworkCredential(userName, password);
- reqFTP.KeepAlive = false;
- reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
- reqFTP.UseBinary = true;
- reqFTP.ContentLength = fileInf.Length;
- int buffLength = ;
- byte[] buff = new byte[buffLength];
- int contentLen;
- FileStream fs = fileInf.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
- Stream strm = reqFTP.GetRequestStream();
- contentLen = fs.Read(buff, , buffLength);
- while (contentLen != )
- {
- strm.Write(buff, , contentLen);
- contentLen = fs.Read(buff, , buffLength);
- }
- strm.Close();
- fs.Close();
- return ;
- }
- catch (Exception ex)
- {
- if (reqFTP != null)
- {
- reqFTP.Abort();
- }
- SystemLog.logger(ex.InnerException.Message);
- return -;
- }
- }
- public static int DownloadFtp(string filename)
- {
- FtpWebRequest reqFTP;
- string serverIP;
- string userName;
- string password;
- string url;
- try
- {
- serverIP = System.Configuration.ConfigurationManager.AppSettings["FTPServerIP"];
- userName = System.Configuration.ConfigurationManager.AppSettings["UserName"];
- password = System.Configuration.ConfigurationManager.AppSettings["Password"];
- url = "ftp://" + serverIP + "/" + Path.GetFileName(filename);
- FileStream outputStream = new FileStream(filename, FileMode.Create);
- reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(url));
- reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
- reqFTP.UseBinary = true;
- reqFTP.KeepAlive = false;
- reqFTP.Credentials = new NetworkCredential(userName, password);
- FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
- Stream ftpStream = response.GetResponseStream();
- long cl = response.ContentLength;
- int bufferSize = ;
- int readCount;
- byte[] buffer = new byte[bufferSize];
- readCount = ftpStream.Read(buffer, , bufferSize);
- while (readCount > )
- {
- outputStream.Write(buffer, , readCount);
- readCount = ftpStream.Read(buffer, , bufferSize);
- }
- ftpStream.Close();
- outputStream.Close();
- response.Close();
- return ;
- }
- catch (Exception ex)
- {
- SystemLog.logger(ex.InnerException.Message);
- return -;
- }
- }
- public class SystemLog
- {
- public static bool logger(string message)
- {
- try
- {
- DateTime timeNow = DateTime.Now;
- string logPath = System.Configuration.ConfigurationManager.AppSettings["LogPath"];
- string logSwitch = System.Configuration.ConfigurationManager.AppSettings["LogSwitch"];
- if (logSwitch == "")
- {
- string logFullPath = Path.Combine(System.Environment.CurrentDirectory,logPath);
- DirectoryInfo dirInfo = new DirectoryInfo(logFullPath);
- if (!dirInfo.Exists)
- {
- dirInfo.Create();
- }
- Encoding encoding = Encoding.GetEncoding("gb2312");
- byte[] info = encoding.GetBytes("[ " + timeNow.ToString("yyyy-MM-dd HH:mm:ss") + " ] " + message + "\n"); //转换编码成字节串
- if (!logPath.EndsWith(Path.DirectorySeparatorChar.ToString()))
- {
- logPath = logPath + Path.DirectorySeparatorChar.ToString();
- }
- using (FileStream fs = System.IO.File.Open(logPath + timeNow.ToString("yyyy_MM_dd") + ".txt", FileMode.Append, FileAccess.Write, FileShare.ReadWrite))
- {
- fs.Write(info, , info.Length);
- //以ASCII方式编写
- using (StreamWriter w = new StreamWriter(fs, Encoding.ASCII))
- {
- w.Flush();
- w.Close();
- }
- fs.Close();
- }
- }
- return true;
- }
- catch (Exception e)
- {
- return false;
- }
- }
- }
- }
- }
FTP上传、下载(简单小例子)的更多相关文章
- JAVA 实现FTP上传下载(sun.net.ftp.FtpClient)
package com.why.ftp; import java.io.DataInputStream; import java.io.File; import java.io.FileInputSt ...
- windows系统下ftp上传下载和一些常用命令
先假设一个ftp地址 用户名 密码 FTP Server: home4u.at.china.com User: yepanghuang Password: abc123 打开windows的开始菜单, ...
- windows下ftp上传下载和一些常用命令
先假设一个ftp地址 用户名 密码 FTP Server: home4u.at.china.com User: yepanghuang Password: abc123 打开windows的开始菜单, ...
- FTP上传下载工具(FlashFXP) v5.5.0 中文版
软件名称: FTP上传下载工具(FlashFXP) 软件语言: 简体中文 授权方式: 免费试用 运行环境: Win 32位/64位 软件大小: 7.4MB 图片预览: 软件简介: FlashFXP 是 ...
- 高可用的Spring FTP上传下载工具类(已解决上传过程常见问题)
前言 最近在项目中需要和ftp服务器进行交互,在网上找了一下关于ftp上传下载的工具类,大致有两种. 第一种是单例模式的类. 第二种是另外定义一个Service,直接通过Service来实现ftp的上 ...
- C# -- FTP上传下载
C# -- FTP上传下载 1. C#实现FTP下载 private static void TestFtpDownloadFile(string strFtpPath, string strFile ...
- Java.ftp上传下载
1:jar的maven的引用: 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="ht ...
- python之实现ftp上传下载代码(含错误处理)
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之实现ftp上传下载代码(含错误处理) #http://www.cnblogs.com/kait ...
- python之模块ftplib(实现ftp上传下载代码)
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块ftplib(实现ftp上传下载代码) #需求:实现ftp上传下载代码(不含错误处理) f ...
- java客户端调用ftp上传下载文件
1:java客户端上传,下载文件. package com.li.utils; import java.io.File; import java.io.FileInputStream; import ...
随机推荐
- 【Java】 剑指offer(10) 旋转数组的最小数字
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. ...
- 013 Spark中的资源调优
1.平常的资源使用情况 2.官网 3.资源参数调优 cores memory JVM 4.具体参数 可以在--conf参数中给定资源配置相关信息(配置的一般是JVM的一些垃圾回收机制) --drive ...
- [OpenCV-Python] OpenCV 中的 Gui特性 部分 II
部分 IIOpenCV 中的 Gui 特性 OpenCV-Python 中文教程(搬运)目录 4 图片 目标 • 在这里你将学会怎样读入一幅图像,怎样显示一幅图像,以及如何保存一幅图像 • 你将要学习 ...
- 《Gradle权威指南》--Gradle任务
No1: 多种方式创建任务 def Task ex41CreateTask1 = task(ex41CreateTask1) ex41CreateTask1.doLast{ println " ...
- VUE 打包后关于 -webkit-box-orient: vertical; 消失,导致多行溢出不管用问题
VUE 打包后 -webkit-box-orient: vertical; 样式消失,导致页面样式爆炸,看了看解决方案,在这里总结一下: 实际上是 optimize-css-assets-webpac ...
- BufferedReader的小例子
注意: BufferedReader只能接受字符流的缓冲区,因为每一个中文需要占据两个字节,所以需要将System.in这个字节输入流变为字符输入流,采用: BufferedReader buf = ...
- VB打开工程时出现不能加载MSCOMCTL.OCX
用记事本打开VBP文件找到这一行:Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.1#0; MSCOMCTL.OCX改为:Object={831FDD1 ...
- NMAP为什么扫描不到端口
NMAP为什么扫描不到端口 NMAP是知名的网络端口扫描工具.但很多新人发现,使用NMAP经常扫描不出来任何端口,尤其是手机之类.这实际存在一个理解上的误区.扫描端口是为了发现主机/设备上存在的对 ...
- 8.9 正睿暑期集训营 Day6 C 风花雪月(DP)
题目链接 完整比赛在这儿. 杜老师tql . 求期望要抽卡的次数,也就是求期望经历了多少不满足状态.而每个不满足的状态对答案的贡献为\(1\),所以可以直接算概率.即\(Ans=\sum_{不满足状态 ...
- Saltstack cp.get 模块
语法 salt '*' cp.get_file salt://rr /etc/rr cp.get_url 可以从一个URL地址下载文件,URL可以是msater上的路径(salt://),也可以是h ...