2016-04-05 2 views
1

Ich habe einen Ordner "res/resx /", der RESX-Dateien enthält. Was ich will, ist all diese .resx-Dateien zu bekommen.asp.net 404 - Datei oder Verzeichnis nicht auf der Website gefunden, aber lokal

Hier ist mein Code dafür.

var Path = Server.MapPath("~/"); 
var SampleUrl = System.IO.Path.GetFullPath(System.IO.Path.Combine(Path, "Res/resx/")); 
string[] files= System.IO.Directory.GetFiles(SampleUrl); 
var AllFiles = new System.Collections.ObjectModel.ReadOnlyCollection<string>(files); 
      foreach (string sFileName in AllFiles) 
      { 
       Response.write(sFileName + " <br>"); 
      } 

Dieser Code funktioniert auf meinem lokalen und ich konnte eine Liste meiner Resx-Dateien sehen. Aber wenn ich dies auf meiner Website bereitstellen und darauf zugreifen, tritt ein Fehler auf der zweiten Zeile des Codes, der sagt:

konnte nicht einen Teil des Wegs ‚gefunden D: \ Websites \ mywebsite.com \ Res \ resx '

Ich habe versucht, Verzeichnis durchsuchen zu ermöglichen, um zu sehen, ob meine Dateien existieren. In meinem lokalen, kann ich die Dateien durchsuchen, aber auf der Website kann ich nicht. Und es scheint, dass das System den Ordner "Res/Resx" auch nicht finden kann. es heißt:

404 - Datei oder Verzeichnis nicht gefunden. Die gesuchte Ressource wurde möglicherweise entfernt, der Name wurde geändert oder ist vorübergehend nicht verfügbar.

Aber der Ordner existiert und es läuft auf meinem lokalen. Irgendwelche Ratschläge, was ich tun sollte oder ist etwas, was ich verpasst habe? Dank

+0

Sind Sie sicher, dass der Ordner tatsächlich auf Ihrem Webserver existiert? Wurde es zusammen mit dem Rest der Website bereitgestellt? – Stephen

+0

Ja, der Ordner existiert. Ich habe auch versucht, die .resx-Dateien in einen Ordner zu übertragen, in dem das System erkennen kann. und 'files' Variable gibt mir jetzt keine Fehler. Jedoch. Es kann keine .resx-Dateien finden, so dass die foreach-Schleife nicht ausgeführt wird. Gibt es irgendeine Art von Konfiguration, die das System nicht erlaubt, .resx-Dateien zu lesen? –

Antwort

0

Versuchen Sie, diese

string[] filePaths = Directory.GetFiles(Server.MapPath("Your folder")); 
+0

funktioniert immer noch nicht. Ich denke, das Problem ist mit .resx-Dateien. Das System scheint es nicht zu lesen. –

0

Blick auf die System.IO.Directory Klasse und die statische Methode GetFiles. Es hat eine Überladung, die einen Pfad und ein Suchmuster akzeptiert. Beispiel:

string[] files = System.IO.Directory.GetFiles(path, "*.resx"); 

beantwortet von Anthony Pegram here.

+0

Es funktioniert auf meinem lokalen PC, aber wenn ich es auf meiner Website bereitstellen, immer noch Fehler geben. Ich denke der Fehler ist, dass es die RESX-Datei nicht finden kann. –

+0

überprüfen Sie die Berechtigungen des Ordners in Ihrer Website, plus sind Sie sicher, dass der Ordner richtig platziert ist? –

+0

Ich weiß eigentlich nicht, wie man die Berechtigung des Ordners überprüft, aber ich habe versucht, die .resx-Dateien in einen Ordner zu übertragen, den das System der Website lesen kann. Und die Funktion verzeichnis.getfiles() funktioniert. Es erkennt jedoch keine .resx-Dateien, daher ist die AllFiles-Variable leer, so dass die foreach-Schleife nicht ausgeführt wird. Vielleicht erlaubt das System nicht, dass .resx standardmäßig gelesen wird? –

Verwandte Themen