2011年3月23日星期三

FTP code

public bool HasFile(string sourceFileName)
{
bool ret = false;
try
{
Uri target = new Uri(CLBBLHelpers.AppendPathNames(Server, sourceFileName));
// Get the object used to communicate with the server.
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(target);
request.Method = WebRequestMethods.Ftp.GetFileSize;
request.Credentials = new NetworkCredential(Username, Password);
WebResponse response = request.GetResponse();
ret = true;
}
catch (WebException e)
{
Uri target = new Uri(CLBBLHelpers.AppendPathNames(Server, sourceFileName));
log.Warn("Error checking if ftp server has a file: username=" + Username + ";password=" + Password + ";source file=" + target.ToString(), e);
}
return ret;
}



public bool UploadFile(string targetFile, string sourceFile)
{
bool ret = false;
try
{
log.Debug("source file=" + sourceFile);
// Get the object used to communicate with the server.
Uri target = new Uri(CLBBLHelpers.AppendPathNames(Server, targetFile));
log.Debug("target file=" + target.ToString());
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(target);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(Username, Password);

FileStream fs = File.OpenRead(sourceFile);
byte[] fileContents = new byte[fs.Length];
fs.Read(fileContents, 0, fileContents.Length);
fs.Close();
Stream rs = request.GetRequestStream();
rs.Write(fileContents, 0, fileContents.Length);
rs.Close();
FtpWebResponse resp = (FtpWebResponse)request.GetResponse();
log.Info("File upload complete, status " + resp.StatusDescription);
ret = true;
}
catch (WebException e)
{
Uri target = new Uri(CLBBLHelpers.AppendPathNames(Server, targetFile));
log.Error("Error uploading file: username=" + Username + "; password=" + Password + "; target file=" + target.ToString(), e);
}
return ret;
}

没有评论:

发表评论