-
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、