获取目录文件夹中每个项目的路径

时间:2016-06-01 03:08:33

标签: c# asp.net-mvc filepath

我在文件夹中有文件,我想返回列表中每个文件的路径,并使用JSON获取它,现在我有扩展方法中所有模型的列表,所以我有:

 public async Task<IList<Slider>> SliderGetList(Slider slider)
    {
        var model = await db.SlidersList.Where(x => x.IsVisible).OrderBy(x => x.Order).ToListAsync(); // there I get all list

        return model;
    }

控制器:

  public async Task<ActionResult> SliderGetAll(Slider slider)
    {
        var model = await _sliderService.SliderGetList(slider);
        return new JsonCamelCaseResult(model, JsonRequestBehavior.AllowGet);
    }

我尝试这些string[] filePaths = Directory.GetDirectories("~/Content/images/slider");这是我想要获取每个项目的路径的目录。我试试这些,但我只得到错误:

  

无法找到路径'C:\ Program Files(x86)\ IIS Express \〜\ Content \ images \ slider'的一部分。

但我不想使用@:C// etc因为我将其上传到服务器......

提前致谢

----------------------------编辑------------------ ---

我使用var filePaths = System.Web.HttpContext.Current.Server.MapPath("~/Content/images/slider");进入文件夹,但现在我不知道如何让每个项目的MapPath都在那里

2 个答案:

答案 0 :(得分:0)

取代string[] filePaths = Directory.GetDirectories("~/Content/images/slider");获取目录列表,请使用:

var directories = Directory.GetDirectories(Server.MapPath("~/Content/images/slider"));

试试这个:

var directories = Directory.GetDirectories(Server.MapPath("~/Content/images/slider"));
foreach(var directory in directories)
{
    string[] files = Directory.GetFiles(directory);
}

答案 1 :(得分:0)

我认为你可以像下面这样使用path.combine

string filePath = Path.Combine(Server.MapPath("~/Content/images/slider"), model.FileName);

遍历每个列表项,在该迭代中,您可以使用上述内容。 model是包含列表的模型,filename是每个迭代可以获得的每个文件的名称