3

基本的に、次のコードを使用してC#ファイルを編集します。

var file = new StreamReader("ftp://xxx.xxx.x.x/xxx.txt"); //[ip address/file]
        label1.Text = file.ReadLine();
        file.Close();
        var fw = new StreamWriter("ftp://xxx.xxx.x.x/xxx.txt"); //[ip address/file]
        fw.WriteLine(textBox1.Text);
        fw.Close();

しかし、それは機能しません、どうすればこれを行うことができますか?

4

4 に答える 4

5

FTP経由の編集ファイルは次のとおりです。

  1. ダウンロードファイル
  2. ファイルをローカルで編集 (メモリ内)
  3. ファイルをアップロードする

手順 1 と 3 については、これを確認してください。

于 2011-02-13T22:15:35.837 に答える
1

これに役立つ .NET 4.0 に含まれているFtpWebRequestクラスを確認してください。

于 2011-02-13T22:15:57.380 に答える
0

少し遅れているようですが、あなたと同じ問題に直面しました。解決策を探した後、ファイルをダウンロードしてアップロードせずに変更を行う方法を見つけました。

私の目標は、プログラムの実行中に行われたすべての変更を終了時に保存し、プログラムの開始時にこれらのデータを FTP サーバーに保存されている .txt ファイルからロードすることでした。

ここでは、2 つの方法が使用されます。

public static void Save(ArrayList dataStore)
    {
        WebClient request = new WebClient();
        string url = "ftp://ftpname/directory/" + "file.txt";
        request.Credentials = new NetworkCredential("username", "password");
        Stream postStream = request.OpenWrite(url);

        foreach (Data data in dataStore)
        {
            byte[] writeData = Encoding.ASCII.GetBytes(data + "#");
            postStream.Write(writeData, 0, writeData.Length);
        }
    }

public static ArrayList Load()
    {
        ArrayList dataStore = new ArrayList();

        WebClient request = new WebClient();
        string url = "ftp://ftpname/directory/" + "file.txt";
        request.Credentials = new NetworkCredential("username", "password");

        byte[] newFileData = request.DownloadData(url);
        string fileString = Encoding.UTF8.GetString(newFileData);

        if (fileString == "")
        {
            return dataStore;
        }

        string[] dataString = fileString.Split('#');

        foreach (string data in dataString)
        {
            if (data != "")
            {
                dataStore.Add(data);
            }
        }

        return dataStore;
    }
于 2013-07-11T15:49:51.170 に答える