Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否正在更新FTP服务器上的文本文件?_C#_Ftp_Ftpwebrequest - Fatal编程技术网

C# 是否正在更新FTP服务器上的文本文件?

C# 是否正在更新FTP服务器上的文本文件?,c#,ftp,ftpwebrequest,C#,Ftp,Ftpwebrequest,我想更新服务器上的现有文件,而不丢失文件上已保存的数据。现在如果我想写点什么。它通过删除以前的数据覆盖文件 我正在使用以下代码 using (StreamWriter sw = new StreamWriter(ftp.GetRequestStream(), Encoding.GetEncoding("iso-8859-1"))) { var sb = new StringBuilder(); foreach (st

我想更新服务器上的现有文件,而不丢失文件上已保存的数据。现在如果我想写点什么。它通过删除以前的数据覆盖文件

我正在使用以下代码

       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

也许你可以为你的FTP客户端实现这个逻辑

  • 创建标志“Updated=false”
  • 本地下载此文件
  • 通过自定义逻辑进行更改
  • 使用其他名称将此文件上载到服务器
  • 重命名旧文件
  • 为新文件指定正确的名称
  • 删除旧文件
  • 标记“Updated=true”,否则将回滚服务器文件的名称
  • 注意:您必须在FTP客户端保留所有协议


    更新:


    你可以尝试使用一些开源代码来开发你的FTP客户端,即

    附加到一个文件,你必须检索文件,附加数据,然后上传修改过的文件。这就是FTP的工作原理,它是为传输文件而设计的。它不是一个具有正常文件访问语义的文件服务应用程序。@Steve:实际上FTP有“APPE”(Append)命令,尽管这个命令的支持范围有多广还存在争议。还有内置的