Ich arbeite an einer ASP.NET MVC 4
-Anwendung. Ich erlaube Benutzern, Dateien hochzuladen, aber ich möchte sie mit einem anderen Namen auf dem Server speichern, also habe ich eine Hilfsmethode erstellt, die GUID
zurückgibt, um verwendet zu werden. Obwohl es wahrscheinlich nie passieren wird, möchte ich noch überprüfen, ob ich eine Datei mit dem gleichen GUID
Namen habe, also habe ich das als Code:
Wie Sie sehen können, ist der Name der Datei nur für Testzwecke fest codiert, weil ich weiß, dass es eine solche Datei gibt.
Um die Datei zu speichern, verwende ich:
%Vor%und es funktioniert einwandfrei. Als ich also versuchte, meine statische Methode aufzurufen, übergab ich das Argument wie folgt:
%Vor%aber dann im Debugging habe ich das gesehen
%Vor% gibt ~/Content/NewsImages\login.jpg
zurück, also habe ich beschlossen, das Argument, an das ich übergebe, zu ändern:
was nun zu ~\Content\NewsImages\login.jpg
führt, was gut aussieht, aber dann:
Ich überlasse die Prüfung, obwohl ich weiß, dass eine solche Datei in dem Verzeichnis vorhanden ist, das ich überprüfen möchte. Wie kann ich das beheben?
Wenn Sie die Hilfsmethode aufrufen, sollten Sie Server.MapPath , wird dies von einem virtuellen Pfad in einen physischen Pfad konvertiert, zB
%Vor%Tags und Links c# asp.net-mvc-4 relative-path