写入web文本文件
本文关键字:文件 文本 web 写入 | 更新日期: 2023-09-27 18:19:56
我正在使用Microsoft Visual C#2010学习版进行编程。我的web服务器上的文件夹中有一个文本文件,其中包含一个字符:"0"。当我启动C#应用程序时,我想从文本文件中读取数字,将其增加1,然后保存新数字。
我浏览过网络,但找不到一个好的答案。我从本地文本文件中得到的只是关于写作/阅读的问题和答案。
所以基本上,我想把一些文本写到一个文本文件中,这个文件不在我的电脑上,但在这里:http://mywebsite.xxx/something/something/myfile.txt
这可能吗?
您可能需要调整路径目录,但这很有效:
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);
}
}
我找到了一个可行的解决方案,使用Barta Tamá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,如何做得更好。如果您的服务器上有重要文件,则不建议使用我的解决方案。