【问题标题】:Yet another aspnet file path question又一个aspnet文件路径问题
【发布时间】:2011-09-16 21:23:45
【问题描述】:

我将有一个用于 Web 应用程序的 Word 文档模板文件夹。这次我想使用相对路径。开发时,我打算在 App_Data 中使用一个子文件夹,但在某些实际配置中,它可能会指向网络共享。

在重新发明轮子之前,aspnet (mvc) 中是否有任何内置方法可以提供完整路径:

  • Web 应用文件夹外的 Web 应用相对路径
  • app_data 中的相对路径
  • 完整路径

如果重要,则从 appSettings 中检索相对(或完整)路径。

澄清:我想知道是否有一个内置方法可以处理所有这些情况作为它的论点,而不是针对单独情况的解决方案。

【问题讨论】:

    标签: c# asp.net asp.net-mvc


    【解决方案1】:

    网络应用文件夹外的网络应用相对路径

    您不能在 Web 应用文件夹之外拥有相对路径。 ASP.NET 中的相对路径总是相对于根 ~/

    app_data 中的相对路径

    var appData = Server.MapPath("~/App_Data");
    var fullFilePath = Path.Combine(appData, "foo.txt");
    

    完整路径

    你已经有了完整的路径

    【讨论】:

    • Server.MapPath(fullPathToAppData) == Server.MapPath("~/App_Data") 吗?
    • “~/../../MyFolder”路径无效吗?
    • ~ 代表你的初始路径,所以,不需要用`..`返回树,因为你已经从头开始了
    • @Carl R, Server.MapPath 只能与相对路径一起使用。 ~/../../MyFolder 位于 Web 应用程序根目录之外,因此相对路径无效。
    • 我试图询问是否有一个内置方法可以处理所有这三个路径作为参数。我可能太含糊了。
    【解决方案2】:

    看来正确的答案是“不”。

    【讨论】:

      猜你喜欢
      • 2011-02-17
      • 1970-01-01
      • 2013-07-14
      • 1970-01-01
      • 2011-09-11
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      相关资源
      最近更新 更多