Server.MapPath kullanılamaz


111

Server.MapPathİş yapmak için ne yapmalıyım ?
Sahibimusing System.Web;

başka? Ne zaman tipi Serveriçin bir hızlı sonuç seçeneği (intelli-duyu) bulunmaktadır Server.

Herhangi bir yardım?


1
Daha fazla bilgi vermeniz gerekiyor. Bu ne tür bir proje? Neden Server.MapPath'i çalıştırmak istiyorsunuz? Bu bir web formları projesi mi ve bir Sayfa alt sınıfında mı yoksa ASPX'in oluşturma işlevinde mi kod yazıyorsunuz?
Dai

C # Winforms .. sunucudaki dosya kullanılabilirliğini kontrol etmesini istiyorum
a1204773

Yanıtlar:


286

bunu kullanmayı deneyebilirsin

    System.Web.HttpContext.Current.Server.MapPath(path);

veya kullan HostingEnvironment.MapPath

    System.Web.Hosting.HostingEnvironment.MapPath(path);

1
Çalışmıyorlar .... Hata 1 'HttpContext' tür veya ad alanı adı 'System.Web' ad alanında mevcut değil (bir derleme başvurusu eksik mi?) ... Hata 2 'Barındırma' türü veya ad alanı adı 'System.Web' ad alanında mevcut değil
a1204773

Görünüşe göre winforms kullanıyorsun, bu bağlantıyı görüp sonra debugging.com/bug/18951
DotNetUser

4
Ben de HostingEnvironment.MapPath çalıştı ve onu bir denetleyicinin dışında kullanıyorum.
Luke

Öncelikle projenizin System.Web.dll'ye başvurması gerekiyor ve çalışacak
ihebiheb

Bu "~ / AppData / Roaming" dizininde bulunan bir dosya nasıl okunur?
Murlidhar Fichadia

14

Projenizin derlemeye başvurması gerekiyor System.Web.dll. Sunucu türü bir nesnedir HttpServerUtility. Misal:

HttpContext.Current.Server.MapPath(path);

3
Böyle bir referans bulamıyorum sadece bu ikisini buldum: System.Web.ApplicationServices, System.Web.Services ....
a1204773

4

System.Web.HttpContext.Current.Server.MapPath("~/") bir thread'den çağırırsak null verir.

Öyleyse kullanmayı dene

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


1

Firt System.web, yoksa bir referans ekleyin . Bunu Referanslar klasöründe yapın.

Daha sonra kullanabilirsiniz Hosting.HostingEnvironment.MapPath(path);


1
bool IsExist = System.IO.Directory.Exists(HttpContext.Current.Server.MapPath("/UploadedFiles/"));
if (!IsExist)
    System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath("/UploadedFiles/"));

StreamWriter textWriter = File.CreateText(Path.Combine(HttpContext.Current.Server.MapPath("/UploadedFiles/") + "FileName.csv"));
var csvWriter = new CsvWriter(textWriter, System.Globalization.CultureInfo.CurrentCulture);
csvWriter.WriteRecords(classVM);

Yalnızca kod yanıtları düşük kaliteli olarak kabul edilir: Kodunuzun ne yaptığını ve sorunu nasıl çözdüğünü açıkladığınızdan emin olun. Gönderinize daha fazla bilgi ekleyebilirseniz, soruyu soran kişiye ve gelecekteki okuyuculara yardımcı olacaktır. Tamamen kod tabanlı yanıtları açıklama
Calos



0

Bu gönderinin birkaç yıllık olduğunu biliyorum, ancak yaptığım şey bu satırı sınıfınızın en üstüne eklemek ve yine de Server.MapPath'i kullanabileceksiniz.

Dim Server = HttpContext.Current.Server

ya da bir işlev yapabilirsin

Public Function MapPath(sPath as String)
    return HttpContext.Current.Server.MapPath(sPath)
End Function

Ben her şeyi kolaylaştırmak üzereyim. Yine bununla karşılaşırsam diye onu Utilities sınıfıma da ekledim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.