2017-07-06 4 views
0

Ich versuche, das Datum der letzten Änderung einer Datei zu erhalten, die sich auf einem anderen Server befindet als der, auf dem ich die Website-Seite habe. Das Problem ist, dass der Pfad zu dieser Datei wie \\ something.com \ foldername \ file.xlsx ist. Ich habe gelesen, dass Sie Server.MapPath nicht mit einem Pfad verwenden können, der doppelte Schrägstriche oder umgekehrte Schrägstriche enthält. Ich habe versucht, den doppelten Backslash durch einen, drei oder vier Backslashes zu ersetzen, aber es funktioniert nicht. Dies ist mein Code bis jetzt:FolderExists gibt falschen Wert zurück

<% 
dim fs, f 
set fs=Server.CreateObject("Scripting.FileSystemObject") 
set f=fs.GetFile(Server.MapPath("\\something.com\foldername\file.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 
%> 

Wenn ich die Datei in das Verzeichnis kopieren, die den Code enthält, und ersetzen Sie diese Zeile mit ..

set f=fs.GetFile(Server.MapPath("file.xlsx")) 

.it funktioniert, aber ich weiß nicht wie ich es mit der Originaldatei machen kann.

Weiß jemand, was ich tun kann, um den doppelten Backslash zu ersetzen, damit das Programm funktioniert? Ich erhalte eine leere Seite, wenn ich versuche, den von mir geposteten Code zu verwenden.

Antwort

0

Ich denke, dass Sie den Unterschied zwischen einem relativen und absoluten Pfad nicht kennen.

Angenommen, Sie möchten einen Link auf Ihrer Website erstellen, um die xlsx herunterzuladen, erstellen Sie einen solchen Link.

<a href="/foldername/file.xlsx">file.xlsx</a> 

jedoch der absolute Pfad auf dem Server so etwas wie

C:\inetpub\wwwroot\something.com\foldername\file.xlsx 

ist, was Server.MapPath tut, ist der relativen Pfad zum absoule Pfad übersetzen, so dass die Datei in einem normalen Dateisystem lokalisiert werden kann. Sie verwenden es also wie einen normalen HTML-Link.

Server.MapPath("/foldername/file.xlsx") 

Wenn Sie also das Datum der letzten Änderung wissen wollen Sie jetzt tun:

FileInfo file = new FileInfo(Server.MapPath("/foldername/file.xlsx")); 
Label1.Text = file.LastWriteTime.ToString(); 
+0

Wäre das nicht bedeuten, dass die Datei bereits auf something.com ist? Es ist nicht. Im Grunde ist meine Seite auf somethingselse.com, daher funktioniert Server.MapPath ("/ foldername/file.xlsx") nicht, weil er nach der Datei auf something.com sucht, ja? – couchPotato

+0

Sie meinen 'something.com' ist eine tatsächliche Website, kein Ordnername auf Ihrem Server. Dann wird dies nicht funktionieren, weil Sie keinen Zugriff auf das Dateisystem haben. Die einzige Möglichkeit besteht darin, diese Datei herunterzuladen, sie auf Ihrem eigenen Server zu speichern und die Eigenschaften dort zu überprüfen. – VDWWD

Verwandte Themen