【问题标题】:Getting directory Path of each item in folder获取文件夹中每个项目的目录路径
【发布时间】:2016-06-01 03:08:32
【问题描述】:

我在一个文件夹中有文件,我想返回列表中每个文件的路径,并使用 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

【问题讨论】:

  • 将此“~/Content/images/slider”更改为“Content/images/slider”。
  • 我得到这些找不到路径“C:\Content\images\slider”的一部分。 @Dr.Stitch
  • 请这样做 Server.MapPath("~/Content/images/slider");
  • 旁注:您可能不应该将服务器路径返回给客户端,因为它对客户端完全无用并且存在潜在的安全风险(信息泄露,对于大多数人来说,安全根本不是问题)跨度>
  • 首先我为 var 更改数组,因为 MapPath 没有得到它,最后我以var filePaths = System.Web.HttpContext.Current.Server.MapPath("~/Content/images/slider"); 的方式执行,现在它进入 root,但现在我如何读取每个文件的每个补丁以返回它在一个列表中? @Dr.Stitch

标签: c# asp.net-mvc filepath


【解决方案1】:

而不是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);
}

【讨论】:

  • 我在var directories = .... 线上收到一条错误消息:找不到路径“C:\Program Files (x86)\IIS Express\~\Content\images\slider”的一部分。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    相关资源
    最近更新 更多