写入Web文本文件

时间:2013-06-26 16:42:53

标签: c# .net winforms visual-studio-2010

我在Microsoft Visual C#2010 Express中编程。 我的Web服务器上的文件夹中有一个文本文件,其中包含一个字符:'0'。 当我启动我的C#应用​​程序时,我想从我的文本文件中读取数字,将其增加1,然后保存新数字。

我浏览了网页,但找不到一个好的答案。我得到的只是关于从本地文本文件写/读的问题和答案。

所以基本上,我想把一些文字写到一个文本文件中,这个文件不在我的电脑上但在这里: http://mywebsite.xxx/something/something/myfile.txt

这可能吗?

2 个答案:

答案 0 :(得分:3)

您可能需要调整路径目录,但这可以:

    string path = Path.GetDirectoryName(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile) + "\\something\\myfile.txt";
    string previousNumber = System.IO.File.ReadAllText(path);
    int newNumber;
    if (int.TryParse(previousNumber, out newNumber))
    {
        newNumber++;
        using (FileStream fs = File.Create(path, 1024))
        {
            Byte[] info = new UTF8Encoding(true).GetBytes(newNumber.ToString());
            fs.Write(info, 0, info.Length);
        }
    }

答案 1 :(得分:0)

我找到了一个有效的解决方案,使用文件传输协议作为BartaTamás提到的。 但是,我从Michael Todd那里了解到这不安全,所以我不会在我自己的应用程序中使用它,但也许它对其他人有帮助。

我在此处找到了有关使用FTP上传文件的信息:http://msdn.microsoft.com/en-us/library/ms229715.aspx

    void CheckNumberOfUses()
    {
        // Get the objects used to communicate with the server.
        FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create("ftp://mywebsite.xx/public_html/something1/something2/myfile.txt");
        HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create("http://mywebsite.xx/something1/something2/myfile.txt");

        StringBuilder sb = new StringBuilder();
        byte[] buf = new byte[8192];
        HttpWebResponse response = (HttpWebResponse)httpRequest.GetResponse();
        Stream resStream = response.GetResponseStream();
        string tempString = null;
        int count = resStream.Read(buf, 0, buf.Length);
        if (count != 0)
        {
            tempString = Encoding.ASCII.GetString(buf, 0, count);
            int numberOfUses = int.Parse(tempString) + 1;
            sb.Append(numberOfUses);
        }

        ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;

        // This example assumes the FTP site uses anonymous logon.
        ftpRequest.Credentials = new NetworkCredential("login", "password");

        // Copy the contents of the file to the request stream.
        byte[] fileContents = Encoding.UTF8.GetBytes(sb.ToString());
        ftpRequest.ContentLength = fileContents.Length;
        Stream requestStream = ftpRequest.GetRequestStream();
        requestStream.Write(fileContents, 0, fileContents.Length);
        requestStream.Close();
        FtpWebResponse ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
        ftpResponse.Close();
    }    

阅读问题的评论如何更好地完成,而不是使用FTP。如果您的服务器上有重要文件,我的解决方案建议。