2010-12-10 12 views
5

dosyayı alınASP.NET MVC geliştirme Bazen, ~/mystyle.css diyelim ki, bir istek müdahale etmek istiyorum, çeşitli nedenlerden dolayı sanal yolu

Ne şu pasajı çalışması yapmak istiyorum:

string absFile = VirtualPathUtility.ToAbsolute(file); 
return System.IO.File.ReadAllText(absFile); 

Bu mutlak yol o kadar ": ne olursa \ C" haritasına gitmiyor olsa web sunucusu için mutlaktır. Dosya sistemine gitmek için eşdeğer bir yöntem var mı? (Veya bir ReadFromVirtualPath vb?)

cevap

18

İstenen bir uygulama yoluna dosya sistemi yolunu almak için Server.MapPath()10'u kullanın.

string absFile = Server.MapPath(file); 

veya

string absFile = HttpContext.Current.Server.MapPath(file); 
6

Ayrıca Akış Dosyana işaret almak için VirtualPathProvider üzerine OpenFile yöntemi kullanabilirsiniz

var stream = HostingEnvironment.VirtualPathProvider.OpenFile(file); 
var text = new StreamReader(stream).ReadToEnd(); 

Genellikle bu yaklaşım tercih edilir, sen şimdi can beri Daha sonra bir nokta bir VirtualPathProvider uygulamak nerede, tüm css dosyaları bir veritabanında bulunan söyleyin.

İlgili konular