不如用批处理文件,呵呵。
ftp -n -s:fn.txt 10.10.10.16 fn.txt内容:
user ftp帐号
密码
put 本地路径 服务器路径
bye
ftp -n -s:fn.txt 10.10.10.16 fn.txt内容:
user ftp帐号
密码
put 本地路径 服务器路径
bye
解决方案 »
- visual studio 2010中自动格式是什么快捷?(eclipse中是ctrl+shift+f)
- DataGrid中使用DropDownList的问题(急)
- (C#)编译好程序的问题
- 高手请进 关于DataSet问题!
- 这个分页存储过程的使用? 在线等!!!
- 关于 控件显示问题
- c#中怎样在一个窗口触发另外一个窗口的事件?
- 用VS2010连接SQL2008,报错“无法打开登录所请求的数据库Archives,登录失败。用户BOYINET\liuyang登录失败”
- ★★★这样的Format怎么写?在线等..........
- c#中如何建立邮箱
- 用C#写出一个导航栏的类(静态)
- Ping服务器
/// <summary>
/// Copy a file from FTP server to local
/// </summary>
/// <param name="sourceFilename">Target filename, if required </param>
/// <param name="localFilename">Full path of the local file </param>
/// <returns> </returns>
/// <res>Target can be blank (use same filename), or just a filename
/// (assumes current directory) or a full path and filename </res>
public bool Download(string sourceFilename, string localFilename, bool PermitOverwrite)
{
//2. determine target file
FileInfo fi = new FileInfo(localFilename);
return this.Download(sourceFilename, fi, PermitOverwrite);
} //Version taking an FtpFileInfo
public bool Download(FtpFileInfo file, string localFilename, bool permitOverwrite)
{
return this.Download(file.FullName, localFilename, permitOverwrite);
} //Another version taking FtpFileInfo and FileInfo
public bool Download(FtpFileInfo file, FileInfo localFI, bool permitOverwrite)
{
return this.Download(file.FullName, localFI, permitOverwrite);
} //Version taking string/FileInfo
public bool Download(string sourceFilename, FileInfo targetFI, bool permitOverwrite)
{
//1. check target
if (targetFI.Exists && !(permitOverwrite))
{
throw (new ApplicationException("Target file already exists"));
} //2. check source
string target;
if (sourceFilename.Trim() == "")
{
throw (new ApplicationException("File not specified"));
}
else if (sourceFilename.Contains("/"))
{
//treat as a full path
target = AdjustDir(sourceFilename);
}
else
{
//treat as filename only, use current directory
target = CurrentDirectory + sourceFilename;
} string URI = Hostname + target; //3. perform copy
System.Net.FtpWebRequest ftp = GetRequest(URI); //Set request to download a file in binary mode
ftp.Method = System.Net.WebRequestMethods.Ftp.DownloadFile;
ftp.UseBinary = true; //open request and get response stream
using (FtpWebResponse response = (FtpWebResponse)ftp.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
//loop to read & write to file
using (FileStream fs = targetFI.OpenWrite())
{
try
{
byte[] buffer = new byte[2048];
int read = 0;
do
{
read = responseStream.Read(buffer, 0, buffer.Length);
fs.Write(buffer, 0, read);
} while (!(read == 0));
responseStream.Close();
fs.Flush();
fs.Close();
}
catch (Exception)
{
//catch error and delete file only partially downloaded
fs.Close();
//delete target file as it's incomplete
targetFI.Delete();
throw;
}
} responseStream.Close();
} response.Close();
}
return true;
}
#endregion