嘿伙计们,我正在为我们的一位客户提供一个车辆Feed到一个自动编码器网站。每天午夜(ish),新的XML文件将上传到我们的FTP,并覆盖当前的文件。目前他有两个相同的网站,并且需要将文件上传到两者,我正在考虑设置它,这样两个网站都可以使用相同的XML文件,这样我们就可以减少错误的风险并说服。
拉动文件效果很好,两个网站都可以读取XML文件,并且没有显示库存的问题。当我尝试显示文件上次更新的日期时,会出现此问题。我创建了一个小片段,用于读取文件更新的日期并显示"最后更新:和日期"但是当我尝试引用非本地文件时,我收到一条错误,上面写着"不支持URI格式"。有没有人知道这样做的方法,或者它是否可能?
目前是什么
FileInfo fileInfo = new FileInfo(Server.MapPath("~/feed/VEHICLES.XML"));
DateTime timeOfCreation = fileInfo.LastWriteTime;
我尝试了什么
FileInfo fileInfo = new FileInfo("http://www.autodealername.com/feed/VEHICLES.XML");
DateTime timeOfCreation = fileInfo.LastWriteTime;
这不好
答案 0 :(得分:1)
这可以通过FTP完成,因为您已经在使用它了。
http://msdn.microsoft.com/en-us/library/system.net.ftpwebresponse.lastmodified.aspx
答案 1 :(得分:0)
FileInfo
使用来自底层文件系统的信息,该信息不是通过HTTP提供的。你需要考虑其他方式。
答案 2 :(得分:0)
如果以这种方式加载文件:
FileInfo fileInfo = new FileInfo("http://www.autodealername.com /feed/VEHICLES.XML");
很可能是IIS或该域/站点上的Web服务器检索到的文件,这与直接从文件系统打开文件不同。
我认为你至少有两种选择:
\\machinename\ShareName\FileName
; 答案 3 :(得分:0)
您可以尝试使用HEAD方法使用WebRequest并查找Last-Modified标头。
这是我用过的代码......
var web = WebRequest.Create("http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=4") as HttpWebRequest;
web.Method = "HEAD";
var response = web.GetResponse();
var lastModified = DateTime.Parse(response.Headers["last-modified"]);
Console.WriteLine(lastModified);
以下是http响应的样子(来自Fiddler)......
HTTP/1.1 200 OK
Server: nginx/0.8.36
Date: Wed, 23 Nov 2011 17:37:44 GMT
Content-Type: image/png
Connection: keep-alive
Cache-Control: max-age=604800
Last-Modified: Tue, 06 Sep 2011 21:44:29 GMT
ETag: "6237328de6ccc1:0"
Content-Length: 19706
X-Cache: HIT
Accept-Ranges: bytes
答案 4 :(得分:0)
您还可以将更新的字段添加到Feed中,以便您可以从Feed本身获取最后一次更新。
RSS pubDate
:
http://www.w3schools.com/rss/rss_tag_pubdate.asp
<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0">
<channel>
<title>W3Schools Home Page</title>
<link>http://www.w3schools.com</link>
<description>Free web building tutorials</description>
<!-- YOU COULD USE THIS -->
<pubDate>Thu, 27 Apr 2006</pubDate>
<item>
<title>RSS Tutorial</title>
<link>http://www.w3schools.com/rss</link>
<description>New RSS tutorial on W3Schools</description>
</item>
</channel>
</rss>
原子updated
:
http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.1.1
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Example Feed</title>
<link href="http://example.org/"/>
<!-- YOU COULD USE THIS -->
<updated>2003-12-13T18:30:02Z</updated>
<author>
<name>John Doe</name>
</author>
<id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>
<entry>
<title>Atom-Powered Robots Run Amok</title>
<link href="http://example.org/2003/12/13/atom03"/>
<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
<updated>2003-12-13T18:30:02Z</updated>
<summary>Some text.</summary>
</entry>
</feed>
答案 5 :(得分:0)
也许尝试使用FileSystemWatcher类,它可以在文件被更改,修改等时通知您。Take a look at it。
祝你好运!