我在文件夹中有文件,我想返回列表中每个文件的路径,并使用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都在那里
答案 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是每个迭代可以获得的每个文件的名称