2011-01-20 32 views
13

olduğunda Server.MapPath kullanmak nasıl var benim web sunucusunda bir dizinden bazı görüntü dosyaları silmek gerektiğinde çalışıyor bazı kod: Ben ..fakatHttpContext .Current Hiçbir şey

Dim ImageURL As String = dsImages.Tables(0).Rows(iImgRow).Item("ImageURL") 
Dim physicalName = Server.MapPath(ImageURL) 
oUpload.DeleteFileFromServer(physicalName, iAdid, iImgID) 

bir sorunla çalışan Belirli aralıklarla ayrı bir konu çalıştıran bir bakım görevi yukarıdaki ihtiyacı gibi dosyalar silinecek olduğunu belirlediğinde: Bu son durumda

Dim ImageURL As String = dsImage.Tables(0).Rows(i - 1).Item("ImageURL") 
Dim iImgID As Integer = dsImage.Tables(0).Rows(i - 1).Item("ImageId") 
Dim physicalName As String = HttpContext.Current.Server.MapPath(ImageURL) 
oUpload.DeleteFileFromServer(physicalName, iAdID, iImgID) 

, HttpContext.Current.Server.MapPath (ImageURL), hiçbir şeyin değeri yoktur.

bu durum için tam yol almanın bir yolu var mı?

+0

Olası yinelenen [nasıl global.asax dan Server.MapPath() kullanabilir?] (http://stackoverflow.com/questions/935940/how-can-i-use-server-mappath-from-global -asax) –

cevap

1

yolları daha sonra ayrı süreç onlar hangi web uygulamasına göredir bilmiyor göreceli olduğunu varsayarsak. Bu durumda config saklayın ve ya ikisi birlikte eklemek veya bir dize ~/

+7

daha iyi bir cevap Bulunan: http://stackoverflow.com/questions/935940/how-can-i-use-server-mappath-from-global-asax - ama iyi yolu bilmiyorum Bu soruyu kapatın. –

+0

Güzel, orada yeni bir şey öğrendim. Sanırım şimdi ölmek için sorumu bıraktın. – Hawxby

16

üzerinde değiştirme işlemi gerekir kodunuzu bir iş parçacığı içine çalışırken HttpContext.Current kullanılamaz.

web uygulaması yoluna sahip için aşağıdakileri yapabilirsiniz kullanım:

System.Web.Hosting.HostingEnvironment.MapPath("~/") 

veya sadece HttpRuntime.AppDomainAppPath özelliğinde bulabilirsiniz (hızlı/önerilir). arasında

İlgili konular