2011-12-30 38 views
5

Tôi muốn mở một file txt và đọc từ nó đây là các mã:Mở và đọc txt tập tin trong ASP

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

TrckData là một thư mục trong ứng dụng web của tôi. nhưng tôi nhận được lỗi này:

Không thể tìm thấy một phần của đường dẫn 'C: \ Program Files (x86) \ Common Files \ Microsoft Shared \ DevServer \ 10.0 \ TrackData \ vehicle_points.txt'.

Dự án của tôi thậm chí không ở trong Trình điều khiển C, tôi không biết nơi đó nhận được url đó.

Trả lời

8

Các ứng dụng ASP.Net được lưu trữ trong một thư mục khác, và tại đây bạn đã đưa ra một tương đối có thể thay đổi theo đường dẫn thực thi asp.net.

Vui lòng sử dụng

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

này chắc chắn sẽ làm việc ..

+0

Vâng, đã làm việc, cảm ơn bro. –

+0

Bạn được chào đón bro .. @ rn-uera –

5

File.OpenText sẽ bắt đầu với đường dẫn là thư mục hiện hành - đây là thư mục thực thi là trong

Bạn cần phải cung cấp cho nó đúng đầy đủ đường dẫn đến tập tin..

+0

Nếu tôi muốn chạy dự án của mình trên máy tính khác thì sao? –

+1

@ rNuǝɹɐ - Bạn vẫn cần cung cấp đường dẫn đầy đủ. Làm thế nào bạn làm điều đó là tùy thuộc vào bạn (lấy đường dẫn gốc từ cấu hình, cơ sở dữ liệu, bất cứ điều gì khác). – Oded

2

có thể sử dụng

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

Câu trả lời tốt nhất là:

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

Có lẽ bạn có thể thêm một số văn bản giải thích lý do tại sao câu trả lời này tốt hơn câu trả lời đã được chấp nhận. sử dụng 'File' hoặc' StreamReader' là những thứ khác nhau, vì vậy chúng không thể so sánh được. –

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

Xin chào, chào mừng bạn đến với stackoverflow !! Tôi nghĩ câu trả lời của bạn có thể hữu ích hơn nhiều nếu bạn đưa ra giải thích về lỗi là gì thay vì bỏ một số mã mà không có bất kỳ ngữ cảnh nào. Vui lòng tham khảo [Cách trả lời] (https://stackoverflow.com/help/how-to-answer) –