2011-12-30 16 views
5

chcę otworzyć plik txt i odczytać z niego oto kod:Otwórz i odczytać plik txt w ASP

StreamReader reader = File.OpenText("TrackData/vehicle_points.txt"); 

TrckData jest folder w mojej aplikacji sieci web. ale ja dostać ten błąd:

nie można odnaleźć części ścieżki 'C: Program Files \ (x86) \ Common Files \ Microsoft Shared \ DevServer \ 10.0 \ TrackData \ vehicle_points.txt'.

Mój projekt nie jest nawet w sterowniku C, nie wiem, skąd ten URL.

Odpowiedz

8

Aplikacje ASP.Net są przechowywane w innym folderze, a tutaj podano wartość względną, która może różnić się w zależności od wykonywanej ścieżki asp.net.

Proszę używać

string path = Server.MapPath("TrackData/vehicle_points.txt"); 
StreamReader reader = File.OpenText(path); 

to na pewno działa ..

+0

Tak, to zadziałało, dzięki. –

+0

Serdecznie witamy bracie @ rn-uera –

5

File.OpenText rozpocznie ścieżka jest bieżący katalog - to katalog wykonywalny jest w

Trzeba dać mu prawidłowy pełną ścieżkę do pliku..

+0

Co jeśli chciałbym uruchomić mój projekt na innym komputerze? –

+1

@ rNuǝɹɐ - Nadal musisz podać pełną ścieżkę. Sposób, w jaki to robisz, zależy od ciebie (wybierz ścieżkę główną z konfiguracji, bazy danych, cokolwiek innego). – Oded

2

można użyć

StreamReader reader = File.OpenText(AppDomain.CurrentDomain.BaseDirectory.ToString() + "TrackData/" +fileName); 
0

Najlepszą odpowiedzią jest jeden:

string path = Server.MapPath("filename.txt"); 
StreamReader rd = new StreamReader(path); 
+0

Być może możesz dodać tekst wyjaśniający, dlaczego ta odpowiedź jest lepsza niż ta, która została już przyjęta. używanie 'File' lub' StreamReader' to różne rzeczy, więc nie da się ich porównać. –

0
StreamReader sr = new StreamReader(Server.MapPath("~/TrackData/") + Textbox.Text); 

string read = sr.ReadLine(); 

if(read != null) 
{ 
    Response.Write(read); 
} 
else 
{ 
    Response.Write("nothing to display"); 
} 
+3

Witam, witam w stackoverflow !! Myślę, że twoja odpowiedź może być o wiele bardziej użyteczna, jeśli wyjaśnisz, co było błędem, zamiast upuszczać jakiś kod bez żadnego kontekstu. Proszę zapoznać się z [Jak odpowiedzieć] (https://stackoverflow.com/help/how-to-answer) –