ใช้รหัสนี้:
HttpContext.Current.Server.MapPath("~")
ข้อมูลอ้างอิงโดยละเอียด:
Server.MapPath
ระบุพา ธ สัมพัทธ์หรือเสมือนเพื่อแม็พกับฟิสิคัลไดเร็กทอรี
Server.MapPath(".")
ส่งคืนไดเร็กทอรีฟิสิคัลปัจจุบันของไฟล์ (เช่น aspx) ที่กำลังดำเนินการ
Server.MapPath("..")
ส่งคืนไดเร็กทอรีหลัก
Server.MapPath("~")
ส่งคืนเส้นทางฟิสิคัลไปยังรูทของแอ็พพลิเคชัน
Server.MapPath("/")
ส่งคืนเส้นทางจริงไปยังรากของชื่อโดเมน (ไม่จำเป็นต้องเหมือนกับรูทของแอปพลิเคชัน)
ตัวอย่าง:
สมมติว่าคุณชี้แอปพลิเคชันเว็บไซต์ ( http://www.example.com/ ) ไปที่
C:\Inetpub\wwwroot
และติดตั้งแอปพลิเคชันร้านค้าของคุณ (เว็บย่อยเป็นไดเรกทอรีเสมือนใน IIS ซึ่งทำเครื่องหมายว่าเป็นแอปพลิเคชัน) ใน
D:\WebApps\shop
ตัวอย่างเช่นหากคุณโทรServer.MapPath
ตามคำขอต่อไปนี้:
http://www.example.com/shop/products/GetProduct.aspx?id=2342
แล้ว:
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
ถ้า Path เริ่มต้นด้วยเครื่องหมายทับ (/) หรือ backward slash () MapPath
เมธอดจะส่งคืนพา ธ ราวกับว่า Path เป็นพา ธ เสมือนแบบเต็ม
ถ้า Path ไม่ได้ขึ้นต้นด้วยเครื่องหมายทับMapPath
เมธอดจะส่งคืนพา ธ ที่สัมพันธ์กับไดเร็กทอรีของคำร้องขอที่กำลังประมวลผล
หมายเหตุ: ใน C #, @ คือตัวดำเนินการสตริงตามตัวอักษรแบบคำต่อคำซึ่งหมายความว่าควรใช้สตริง "ตามสภาพ" และไม่ได้รับการประมวลผลสำหรับลำดับ Escape
เชิงอรรถ
Server.MapPath(null)
และServer.MapPath("")
จะสร้างเอฟเฟกต์นี้ด้วย