2012-04-10 15 views
1

ファイルに既に保存されているデータを失うことなく、サーバー上の既存のファイルを更新したいとします。現在、私が何かを書こうとすると。以前のデータを削除してファイルを上書きします。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

+2

、あなたのFTPクライアントを開発するために、いくつかのオープンソースコードを使用しようとすることができます、変更されたファイルをアップロードします。これはFTPがどのように動作するかを示しています。通常のファイルアクセスセマンティクスを持つファイルサーバーアプリケーションではありません。 – Steve

+0

@Steve:実際には、FTPは "APPE"(Append)コマンドを持っていますが、特定のコマンドがどれくらい広くサポートされているかは議論の余地があります。 – Brook

答えて

0

おそらくuはあなたのFTPクライアントのために、このロジックを実装することができます...

  1. "偽=更新" フラグを作成し、このファイルをダウンロードしてローカルで
  2. カスタムロジックで変更してください
  3. このファイルを別の名前でサーバーにアップロードします
  4. マーク「=真更新」
  5. 古いファイルを削除します
  6. 新しいファイルの正しい名前を付け
  7. 古いファイルの名前を変更それ以外の場合はサーバーのファイルの名前をロールバック

注:Uを維持する必要がありますFTPクライアントでのすべてのプロトコル。


UPDATES:

Uはあなたのデータを追加し、あなたがファイルを取得する必要があると思いますファイルに追加するにはすなわちC# FTP Client Library

+2

[FtpWebRequest](http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.aspx)も組み込まれています。 – Default

関連する問題