Sử dụng mã này:
HttpContext.Current.Server.MapPath("~")
Chi tiết tham khảo:
Server.MapPath
xác định đường dẫn tương đối hoặc ảo để ánh xạ vào một thư mục vật lý.
Server.MapPath(".")
trả về thư mục hiện vật lý của file (ví dụ aspx) đang được thực thi
Server.MapPath("..")
trả về thư mục cha
Server.MapPath("~")
trả về đường dẫn vật lý vào thư mục gốc của ứng dụng
Server.MapPath("/")
lợi nhuận đường dẫn vật lý vào thư mục gốc của tên miền (không nhất thiết phải giống như thư mục gốc của ứng dụng )
Một ví dụ:
Hãy nói rằng bạn chỉ một ứng dụng web site (http://www.example.com/) để
C:\Inetpub\wwwroot
và cài đặt ứng dụng cửa hàng của bạn (web phụ như thư mục ảo trong IIS, đánh dấu là ứng dụng) trong
D:\WebApps\shop
Ví dụ: nếu bạn gọi Server.MapPath
trong yêu cầu sau:
http://www.example.com/shop/products/GetProduct.aspx?id=2342
thì:
Server.MapPath(".") returns D:\WebApps\shop\products
Server.MapPath("..") returns D:\WebApps\shop
Server.MapPath("~") returns D:\WebApps\shop
Server.MapPath("/") returns C:\Inetpub\wwwroot
Server.MapPath("/shop") returns D:\WebApps\shop
Nếu đường dẫn bắt đầu với một trong hai tiền đạo (/) hoặc dấu gạch chéo ngược(), phương pháp MapPath
trả về một con đường như thể con đường là một đầy đủ, đường dẫn ảo.
Nếu đường dẫn không bắt đầu bằng dấu gạch chéo, phương thức MapPath
trả về đường dẫn liên quan đến thư mục của yêu cầu đang được xử lý.
Lưu ý: trong C#, @ là toán tử chuỗi chữ đúng nguyên văn có nghĩa là chuỗi nên được sử dụng "nguyên trạng" và không được xử lý cho chuỗi thoát.
Chú thích
Server.MapPath(null)
và Server.MapPath("")
sẽ tạo ra hiệu ứng này quá.
Nguồn
2014-12-16 08:51:43
Bài liên quan [ở đây] (https://stackoverflow.com/q/6041332/465053) nói về đường dẫn thực thi ứng dụng .Net nói chung. – RBT
Một bài đăng khác nói về [đường dẫn bản đồ máy chủ trong các ứng dụng web trong. Net] (https://stackoverflow.com/q/275781/465053) – RBT