您的位置:首页 > 编程语言 > PHP开发

upload and download from ftp service

2016-11-28 09:48 357 查看
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;

namespace Kerry.K3.JobUpdate.Scheduler.K35FtpToK3
{
public class UploadK35Ftp
{
public static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
private static string ftpK35UserName = "klho.k35.edi";
private static string ftpK35Pwd = "44edH6W9";
private static string ftpK35Path = "ftp://10.0.8.74/k3_standardjobout/standjob_fd1/test/";
private static string ftpK3Path = "ftp://172.18.8.43/Interface/IMPJOBXML_K35_FD1/";
public void deleteFilesXmls()
{
string ftpUserName = "klho.k35.edi";
string ftpPwd = "44edH6W9";
FtpWebRequest req;
req = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://10.0.8.74/k3_standardjobout/standjob_fd1/JOB_K35_AE_CNECNSHAA_20161111150525_0001.xml"));
req.Credentials = new NetworkCredential(ftpUserName, ftpPwd);
req.KeepAlive = false;
req.Method = WebRequestMethods.Ftp.DeleteFile; ///更改这行
req.UseBinary = true;
// req.RenameTo = "ftp://172.18.8.3/Interface/IMPJOBXML_K35_FD1/JOB_K35_AE_CNECNSHAA_0001.xml"; ///加入这行

using (FtpWebResponse Response = (FtpWebResponse)req.GetResponse())
{
long size = Response.ContentLength;
using (Stream datastream = Response.GetResponseStream())
{
using (StreamReader sr = new StreamReader(datastream))
{
sr.ReadToEnd();
sr.Close();
}
datastream.Close();
}
Response.Close();
}
}

public void download(string filename)
{
//FileMode常数确定如何打开或创建文件,指定操作系统应创建新文件。
//FileMode.Create如果文件已存在,它将被改写
// string adss = "ftp://172.18.8.3/Interface/IMPJOBXML_K35_FD1/";
//FileStream outputStream = new FileStream(@filePath + "\\" + fileName, FileMode.Create);
//reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(@"ftp://" + "192.168.0.1:9595" + "/AA/BB/" + "A.txt"));
string adss = "D:\\TEMP\\";
adss = string.Concat(adss, filename);
string ftpadss = string.Concat(ftpK3Path, filename);
FileStream outputStream = new FileStream(adss, FileMode.Create);
FtpWebRequest downRequest = (FtpWebRequest)WebRequest.Create(new Uri(ftpadss));
// FtpWebRequest downRequest = (FtpWebRequest)WebRequest.Create(new Uri(@"ftp://" + "172.18.8.3:22" + "/Interface/IMPJOBXML_K35_FD1/" + filename));
string ftpK3UserName = "weblogic";
string ftpK3Pwd = "8u3TuCRE";

downRequest.Credentials = new NetworkCredential(ftpK3UserName, ftpK3Pwd);
//设置要发送到 FTP 服务器的命令
downRequest.Method = WebRequestMethods.Ftp.DownloadFile;
FtpWebResponse response = (FtpWebResponse)downRequest.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();
}

//private static List<String> GetFileList()
public List<String> GetFileList()
{
List<string> list = new List<string>();
//string FtpAddress = "ftp://10.0.8.74/k3_standardjobout/standjob_fd1/test";
FtpWebRequest req = (FtpWebRequest)WebRequest.Create(new Uri(ftpK35Path));
req.Credentials = new NetworkCredential(ftpK35UserName, ftpK35Pwd);
req.Method = WebRequestMethods.Ftp.ListDirectory;
req.UseBinary = true;
req.UsePassive = true;
try
{
using (FtpWebResponse res = (FtpWebResponse)req.GetResponse())
{
using (StreamReader sr = new StreamReader(res.GetResponseStream()))
{
string s;
while ((s = sr.ReadLine()) != null)
{

list.Add(s);
}
}
}
}
catch (Exception ex)
{
log.Info("下载文件列表失败:");
log.Info(ex.ToString());
}
return list;

}

public void UploadFile(string localFile)
{
FileInfo fi = new FileInfo(localFile);
FileStream fs = fi.OpenRead();
long length = fs.Length;
string adss = string.Concat(ftpK3Path, fi.Name);

FtpWebRequest req = (FtpWebRequest)WebRequest.Create(adss);
string ftpK3UserName = "weblogic";
string ftpK3Pwd = "8u3TuCRE";

req.Credentials = new NetworkCredential(ftpK3UserName, ftpK3Pwd);
req.Method = WebRequestMethods.Ftp.UploadFile;
req.UseBinary = true;
req.ContentLength = length;
req.Timeout = 10 * 1000;
try
{
Stream stream = req.GetRequestStream();

int BufferLength = 2048; //2K
byte[] b = new byte[BufferLength];
int i;
while ((i = fs.Read(b, 0, BufferLength)) > 0)
{
stream.Write(b, 0, i);
}
stream.Close();
stream.Dispose();

}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}

}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: