我有一个带有“GetNewsFeed”方法的类,当请求页面时:
- 检查文件是否存在并且不到 30 分钟
- 如果确实存在,则读取文件的内容,将内容推送到页面上
- 如果它不存在,转到一个 URL 并将该页面的内容写入 .txt 文件,将内容推送到页面上
我不太精通 C#,所以我试图拼凑一些来源。我相信我已经接近了,但如果需要,我无法让文件每 30 分钟刷新一次(我没有收到任何编译错误或任何东西)。任何帮助,将不胜感激。
public static string GetNewsFeed(string url, string fileName)
{
// Set the path to the cache file
String filePath = HttpContext.Current.Server.MapPath("/cachefeed/" + fileName + ".txt");
string fileContents = "";
// If the file exists & is less than 30 minutes old, read from the file.
if (File.Exists(filePath) && (File.GetLastWriteTime(filePath) > DateTime.Now.AddMinutes(-30)))
{
fileContents = File.ReadAllText(filePath);
}
else
{
try
{
// If the file is older than 30 minutes, go out and download a fresh copy
using (var client = new WebClient())
{
// Delete and write the file again
fileContents = client.DownloadString(url);
File.Delete(filePath);
File.WriteAllText(filePath, fileContents);
}
}
catch (Exception)
{
if (File.Exists(filePath))
{
fileContents = File.ReadAllText(filePath);
}
}
}
return fileContents;
}
最后,我在别处有一些代码可以读取这些文本文件并将其内容处理到页面上。我对此没有任何问题。