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 ...
随机推荐
- 怎么在项目中使用前端包管理器bower和构建工具gulp
下面以WeUI(微信官方网页开发样式库)介绍一下,怎么把WeUi引入到自己的项目中,我的开发环境Visual Studio 2012,当然了Visual Studio 2015对此已有了更好的支持(h ...
- 【AtCoder】CODE FESTIVAL 2017 qual B
最近不知道为啥被安利了饥荒,但是不能再玩物丧志了,不能颓了 饥荒真好玩 A - XXFESTIVAL CCFESTIVAL #include <bits/stdc++.h> #define ...
- unity 之 no cameras rendering
相机被隐藏或删除了 应该是你的代码摧毁了全部的东西,包括摄像机,所以就会提示你没有摄像机了. 或者说你将 OnClose(); 这段代码的脚本赋给了摄像机
- Unity 精灵物体的创建 Sprite.create
参考链接:http://www.cnblogs.com/BuladMian/p/6226744.html 创建预制体精灵 优点:创建大量相同精灵,只用调用一个预制体精灵,避免了 计算机大量重复创建会导 ...
- Python3.X 安装Scrapy
安装Scrapy有两种方法: 1.pip install Scrapy 这种方式按道理来说是最简洁最快速的,但是有的时候安装不成功,只能更换一种方式,下载源文件安装的方式,详见下面一步. 2.下载文件 ...
- C++语言实现-拓扑排序
1.拓扑排序的概念 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则 ...
- 从零搭建ES搜索服务(一)基本概念及环境搭建
一.前言 本系列文章最终目标是为了快速搭建一个简易可用的搜索服务.方案并不一定是最优,但实现难度较低. 二.背景 近期公司在重构老系统,需求是要求知识库支持全文检索. 我们知道普通的数据库 like ...
- PyPDF2详解
工作中可能会涉及处理pdf文件,PyPDF2就是这样一个库, 使用它可以轻松的处理pdf文件,它提供了读.写.分割.合并.文件转换等多种操作.官方地址:http://mstamy2.github.io ...
- Python中的MySQLConnector使用介绍
MySQL Connector/Python 是 MySQL 官方提供的 Python 连接 MySQL 数据库的驱动程序了,很多初学者对于 在python中连接mysql数据库还是有点为难了,下文我 ...
- Android getWidth和getMeasuredWidth
1. 在一个类初始化时,即在构造函数当中我们是得不到View的实际大小的.感兴趣的朋友可以试一下,getWidth()和getMeasuredWidth()得到的结果都是0.但是我们可以从onDraw ...