我正在尝试获取与我拥有网站页面的服务器不同的文件的上次修改日期。问题是该文件的路径类似于\\something.com\文件夹名称\文件.xlsx。我读到您不能将Server.MapPath与包含双斜杠或反斜杠的路径一起使用。我试图用一个、三个或四个反斜杠替换双反斜杠,但它不起作用。这是我到目前为止的代码:
<%
dim fs, f
set fs=Server.CreateObject("Scripting.FileSystemObject")
set f=fs.GetFile(Server.MapPath("\something.comfoldernamefile.xlsx"))
Response.Write("The file was last modified on: <h1 id='dateTime'>")
Response.Write(f.DateLastModified)
Response.Write("</h1>")
set f=nothing
set fs=nothing
%>
如果我复制包含代码的目录中的文件并将该行替换为..
set f=fs.GetFile(Server.MapPath("file.xlsx"))
..它可以工作,但我不明白如何让它与原始文件一起使用。
有谁知道我该怎么做才能替换双反斜杠以使程序正常工作?如果我尝试使用我发布的代码,我会得到一个空白页。
我想你不知道相对路径和绝对路径之间的区别。
假设您想在您的网站上创建一个链接以下载 xlsx,您可以创建一个这样的链接。
<a href="/foldername/file.xlsx">file.xlsx</a>
但是,服务器上的绝对路径类似于
C:inetpubwwwrootsomething.comfoldernamefile.xlsx
Server.MapPath
所做的是将相对路径转换为 absoule 路径,以便文件可以位于普通文件系统中。因此,您可以像使用普通的html链接一样使用它。
Server.MapPath("/foldername/file.xlsx")
因此,如果您想知道上次修改日期,您现在这样做:
FileInfo file = new FileInfo(Server.MapPath("/foldername/file.xlsx"));
Label1.Text = file.LastWriteTime.ToString();