【问题标题】:get full path of application directory获取应用程序目录的完整路径
【发布时间】:2011-09-30 11:53:13
【问题描述】:

我有一个使用 ASP.NET 和 C# 的网站。

我正在尝试做这样的事情

bitmap.Save(@"C:\Documents and Settings\Berzon\Desktop\Kinor\kWebGUI\Images\" + imageName + ".png")

但我不想写整个路径,因为它会随着计算机的变化而变化。
如何使用 C# 获得完整路径? (此路径是当前正在保存的应用程序)

【问题讨论】:

    标签: c# asp.net path directory


    【解决方案1】:

    使用这个:

    bitmap.Save(System.IO.Path.Combine(Server.MapPath("~/RELATIVE PATH OF YOUR APPLICATION"), imageName + ".png"));
    

    或 HttpContext.Current.Request 的一些属性(例如ApplicationPathAppDomain.CurrentDomain.BaseDirectory

    【讨论】:

      【解决方案2】:

      检索应用程序路径

      string appPath = HttpContext.Current.Request.ApplicationPath;
      

      将虚拟应用路径转换为物理路径

      string physicalPath = HttpContext.Current.Request.MapPath(appPath);
      

      【讨论】:

        【解决方案3】:
        System.IO.Path.Combine(Server.MapPath("~"), "Folder1\\Folder2\\etc")
        

        您可以阅读有关 MapPath here

        【讨论】:

          【解决方案4】:

          你可以使用

          Server.MapPath("imageName + ".png");
          

          【讨论】:

            【解决方案5】:
            AppDomain.CurrentDomain.BaseDirectory
            
            System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory,image.png)
            

            如果我理解您的问题,您希望将其保存在您的 asp.net 应用程序所在的文件夹中

            其他 VMATM ans 是完美的

            【讨论】:

              【解决方案6】:

              Server.MapPath 可以提供帮助。 Read this

              【讨论】:

                【解决方案7】:

                我更喜欢这样解决:

                string strPath = string.Format("{0}\\{1}.{2}", HttpContext.Current.Server.MapPath("~\\Images"), imageName, ".png");
                bitmap.Save(strPath);
                

                我喜欢这种方法的原因是: A) 使用调试器很容易单步执行并查看 strPath 是什么,更容易理解正在发生的事情并修复如果它不是您所期望的。 B)使用“+”连接字符串是一个坏习惯。它的可读性较差,每次连接字符串时都会重新分配内存……这意味着性能较低。您应该改用 string.Format OR StringBuilder。

                【讨论】:

                  【解决方案8】:

                  为了获得应用程序根目录的路径,如果你在一个aspx页面你可以使用:

                  Server.MapPath("~/");
                  

                  但是,如果您在另一个不从 Page 继承的类中,您可以使用:

                  System.Web.HttpContext.Current.Server.MapPath("~/");
                  

                  然后使用路径组合来获取特定文件的路径

                  Path.Combine(root, pathFromRootToFile);
                  

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2010-10-14
                    • 1970-01-01
                    • 1970-01-01
                    • 2020-12-17
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多