更新FTP服务器上的文本文件?
问题描述:
我想更新服务器上的现有文件,而不会丢失文件上已保存的数据。目前如果我尝试写点东西。它通过删除以前的数据覆盖文件。更新FTP服务器上的文本文件?
我正在使用以下代码。
using (StreamWriter sw = new StreamWriter(ftp.GetRequestStream(), Encoding.GetEncoding("iso-8859-1")))
{
var sb = new StringBuilder();
foreach (string value in row)
{
if (sb.Length > 0)
sb.Append(",");
sb.Append(value);
}
sw.WriteLine(oldRecords.ToString() + sb.ToString());
sw.Flush();
}
我怎么能在文件中没有丢失已有数据更新文件。
感谢,
函数naveed
答
也许u能实现这个逻辑,你的FTP客户端...
- 创建标志 “更新=假”
- 下载这个文件在本地
- 通过您的自定义逻辑进行更改
- 将此文件用其他名称上传到服务器
- 重命名旧文件
- 新文件
- 删除旧文件提供正确的名称
- 马克“更新=真”,否则回滚名称为服务器文件
注:U必须保持FTP客户端的所有协议。
更新:
U可以尝试使用一些开源代码来开发你的FTP客户端,即C# FTP Client Library
+2
还有内建的[FtpWebRequest](http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.aspx) – Default 2012-04-10 14:20:17
要追加到一个文件,你不得不检索文件,追加数据,并上传修改后的文件。这是FTP的工作原理,它设计用于传输文件,它不是具有普通文件访问语义的文件保护应用程序。 – Steve 2012-04-10 13:44:51
@Steve:实际上FTP确实有“APPE”(追加)命令,尽管这个特殊命令的广泛支持值得商榷。 – Brook 2012-04-10 13:54:40