当我构建我的.net网站时,我使用了检索文件路径 Directory.GetFiles(@ “d:\项目\图像”);
但是当我在互联网服务器上部署它时,我必须更改此文件夹的链接,你能帮我解决这个问题吗?我可以在Directory.GetFiles()中使用相对链接或如何使用
答案 0 :(得分:3)
将路径放在 web.config 中。无论如何,你不应该是硬编码路径。如果将来发生变化怎么办?
在您的设置中添加:
<appSettings>
<add key="myPath" value="D:\project\images"/>
</appSettings>
...然后从您的应用程序中调用它:
var myPath = WebConfigurationManager.AppSettings["myPath"];
如果您真的想要坚持下去,请查看web.config transformations,以便在发布时,您的发布配置将会转换并应用于您!
答案 1 :(得分:1)
执行此操作的正确方法是使用Server.MapPath 这会将Web应用程序中的虚拟路径映射到服务器中的物理路径。
答案 2 :(得分:1)
有类似的内容:
<configuration>
<appSettings>
<add key="ImagesFolder" value="\Images" />
</appSettings>
</configuration>
然后在您的ASP.NET C#代码中,您可以使用:
var ImagesFolder = ConfigurationManager.AppSettings["ImagesFolder"];
var files = Directory.GetFiles(Server.MapPath(ImagesFolder));
请注意,您需要添加对System.Configuration
程序集的引用,否则您将无法添加using语句并访问ConfigurationManager
。
以这种方式没有硬编码值,您可以通过编辑Web服务器上已部署文件夹中的web.config文件来为该appsetting编写所需的值。