-
using System; -
using System.Collections.Generic; -
using System.Text; -
using System.IO; -
using System.Data; -
using System.Net; -
using System.Globalization; -
namespace FTPConsoleApplication -
{ -
class Program -
{ -
static void Main(string[] args) -
{ -
} -
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[1024]; -
int bytesRead; -
while (true) -
{ -
bytesRead = fileStream.Read(buffer, 0, buffer.Length); -
if (bytesRead == 0) -
{ -
break; -
} -
requestStream.Write(buffer, 0, 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 = 2048; -
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, 0, buffLength); -
while (contentLen != 0) -
{ -
strm.Write(buff, 0, contentLen); -
contentLen = fs.Read(buff, 0, buffLength); -
} -
strm.Close(); -
fs.Close(); -
return 0; -
} -
catch (Exception ex) -
{ -
if (reqFTP != null) -
{ -
reqFTP.Abort(); -
} -
SystemLog.logger(ex.InnerException.Message); -
return -2; -
} -
} -
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 = 2048; -
int readCount; -
byte[] buffer = new byte[bufferSize]; -
readCount = ftpStream.Read(buffer, 0, bufferSize); -
while (readCount > 0) -
{ -
outputStream.Write(buffer, 0, readCount); -
readCount = ftpStream.Read(buffer, 0, bufferSize); -
} -
ftpStream.Close(); -
outputStream.Close(); -
response.Close(); -
return 0; -
} -
catch (Exception ex) -
{ -
SystemLog.logger(ex.InnerException.Message); -
return -2; -
} -
} -
public class SystemLog -
{ -
public static bool logger(string message) -
{ -
try -
{ -
DateTime timeNow = DateTime.Now; -
string filename = System.Configuration.ConfigurationManager.AppSettings["LogPath"]; -
string logSwitch = System.Configuration.ConfigurationManager.AppSettings["LogSwitch"]; -
if (logSwitch == "1") -
{ -
Encoding encoding = Encoding.GetEncoding("gb2312"); -
byte[] info = encoding.GetBytes("[ " + timeNow.ToString("yyyy-MM-dd HH:mm:ss") + " ] " + message + "\n"); //转换编码成字节串 -
if (!filename.EndsWith(Path.DirectorySeparatorChar.ToString())) -
{ -
filename = filename + Path.DirectorySeparatorChar.ToString(); -
} -
using (FileStream fs = System.IO.File.Open(filename + timeNow.ToString("yyyy_MM_dd") + ".txt", FileMode.Append, FileAccess.Write, FileShare.ReadWrite)) -
{ -
fs.Write(info, 0, info.Length); -
//以ASCII方式编写 -
using (StreamWriter w = new StreamWriter(fs, Encoding.ASCII)) -
{ -
w.Flush(); -
w.Close(); -
} -
fs.Close(); -
} -
} -
return true; -
} -
catch (Exception e) -
{ -
return false; -
} -
} -
} -
} -
}
开启Windows 7 下的FTP服务
1、
2、
3、
4、
5、
6、
7、
8、