2010-01-11 33 views
16

aşağıdaki yolları var;bir klasördeki dosyaları alın Benim MVC uygulamasında

  • /content/images/başparmak

tam

  • /content/images/Nasıl, benim C# denetleyicisi, klasör benim başparmak içindeki tüm dosyaların listesini getirir misin? Server.MapPath hala en iyi yolu

    Düzenleme

    mi?

    Şimdi DirectoryInfo di = new DirectoryInfo(Server.MapPath("/content/images/thumbs")); bu var ama bu doğru yol değil hissediyorum.

    bunun için MVC en iyi yöntem var ya hala doğru üzerindedir?

  • +1

    yukarıdaki ('Server.MapPath':

    Directory.EnumerateFiles(Server.MapPath("~/Content/images/thumbs")); 

    Sen görünümünde yineleme hangi bir IEnumerable<string> olsun) bence doğru ve kabul edilebilir. –

    cevap

    5
    Directory.GetFiles("/content/images/thumbs") 
    

    Dizindeki tüm dosyaları bir dizgi dizisine alacaktır.

    +2

    @Daniel Bunu işe alamıyorum. web uygulama düzeyim yerine c: \ content \ images \ thumbs dizininde eşler. – griegs

    +0

    Yapmaya çalıştığınız şey hakkında daha fazla bilgi verebilir misiniz? Görünüme dosya yollarının bir listesini döndürmeye çalıştığınız anlaşılıyor. Bu durumda, görünümde, '<% = Server.MapPath (filePath)%> 'kullanmayı deneyin, burada filePath yerel bir yoldur. –

    +0

    Whoops, sadece 'Server.MapPath()' aslında bir dosya yolu bir sunucu yolunu dönüştürür fark ettim. Şimdi başka çözümler arıyoruz ... –

    38

    NET 4.0 bunun için daha verimli bir yöntem var:

    @model IEnumerable<string> 
    <ul> 
        @foreach (var fullPath in Model) 
        { 
         var fileName = Path.GetFileName(fullPath); 
         <li>@fileName</li> 
        } 
    </ul> 
    
    +3

    , bu soruyu göz atın: (http://stackoverflow.com/questions/11105768/cannot-use-server-mappath) – Alex

    +0

    Eğer sağlayarak bu dosyaları hizmet edebilir [Server.MapPath kullanılamaz] Tam yolun bir bağlantısı mı yoksa bunun için bir işleyiciye mi ihtiyacınız var? – JsonStatham

    +0

    @selectDistinct Ne demek istediğinizden emin değilsiniz. Server.MapPath sanal yolu fiziksel bir dizin yoluna dönüştürür. Tabii ki kodu yürüten işlem bu yola erişim hakkına ihtiyaç duyar. OP bir dosya listesi istedi – slfan

    İlgili konular