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 ...
随机推荐
- 结构型模式之Adapter模式
适配器模式把一个类的接口变换成客户端所期待的另一种接口. 在JDK中的体现 把一个接口或类变成另外一种. java.util.Arrays#asList()javax.swing.JTable(Tab ...
- python的selenium
from selenium import webdriverChromeDriver="C:\Program Files (x86)\Google\Chrome\Application\ch ...
- BZOJ1266 [AHOI2006]上学路线route Floyd 最小割 SAP
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1266 题意概括 一个无向图,第一问:从1~n的最短路. 第二问,删除价值总和最小的边,使得1~n的 ...
- P1197 [JSOI2008]星球大战 并查集 反向
题目描述 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治着整个星系. 某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球.这些星球通过特殊的以太隧 ...
- Linux —— 常见指令及其英文全称
alias:给命令起别名 awk = "Aho Weiberger and Kernighan" ,三个作者的姓的第一个字母 bash:GNU Bourne-Again Shell ...
- 《gradle权威指南》--Gradle入门
No1: Window下搭建Gradle:添加GRADLE_HOME环境变量,然后把GRADLE_HOME\bin添加到PATH系统变量里保存即可.完成后打开CMD,运行gradle -v来验证 No ...
- UVA 11624-Fire!【双BFS】
<题目链接> 题目大意: 你的任务是帮助J走出一个大火蔓延的迷宫.J每分钟可以超上下左右四个方向移动,而所有着火的格子每一分钟都会往四个方向蔓延一格.迷宫中有一些障碍,J和火都无法进入.当 ...
- 移动端滑屏全应用【一】cssHandler操作基础动画函数封装
前言: 大家都知道,在移动端进行操作结点移动时,我们都会使用操作transform来代替top等用以提高性能,必要的时候还可开启3d加速.我们都会使用getComputedStyle来获取结点的最终样 ...
- Running multiple commands in one line in shell
You are using | (pipe) to direct the output of a command into another command. What you are lookin ...
- VM浏览器不能访问
Issue: when start WAS DManager&WAS AppServer then it could be reach in VM local browser but coul ...