2012-10-30 33 views
6

Tôi có tệp Excel có Hành động xây dựng content trong thư viện lớp học. Thư viện được tham chiếu bởi cả một ứng dụng ASP.NET WebForms và một ứng dụng bàn điều khiển, và tệp Excel được sử dụng bởi cả hai. Có cách nào tôi có thể lập trình có được đường dẫn tập tin của tập tin này?Cách lấy đường dẫn tệp nội dung trong thư viện lớp

Tôi biết trong ASP tôi có thể làm điều này:

HttpContext.Current.Server.MapPath(@"bin") 

Và trong ứng dụng giao diện điều khiển tôi có thể làm điều này:

Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) 

Những nơi làm việc, nhưng tôi tự hỏi nếu có tốt hơn, củng cố cách để tìm tệp từ assembly và trả về đường dẫn.

Trả lời

1

Cách tiếp cận thứ hai hoạt động tốt trong tất cả các môi trường bạn chỉ nên thay đổi nó để nó không tìm kiếm cụm lắp ráp nhưng hội đồng cụ thể.

Cách dễ nhất để làm điều này là:

typeof(Some.Type.From.That.Assembly).Assembly.Location 

Một thay thế sẽ được sử dụng các nguồn lực nhúng để bạn có thể tải các tập tin trực tiếp từ lắp ráp. Tất nhiên, điều này sẽ không hoạt động nếu tệp phải được người dùng ghi.

+0

Tài nguyên được nhúng sẽ không hoạt động tốt vì chúng tôi phải thực hiện tương tác với tệp excel (ugh) và cần nó trên đĩa. Tôi đã hy vọng tránh làm một 'MapPath' hoặc' Path.Combine' vào thư mục 'bin' và tìm tệp, nhưng có thể không có cách nào khác ... –

+0

Bạn luôn có thể lưu tệp từ tài nguyên được nhúng vào thư mục temp và sau đó thực hiện tương tác ở đó. Nó cũng sẽ ngăn chặn các vấn đề nếu nhiều tiến trình chạm vào tệp hoặc excel vì một số lý do bị treo và không giải phóng tệp. –

Các vấn đề liên quan