当我建立我的 .net 站点时,我使用 Directory.GetFiles(@"D:\project\images"); 检索文件路径。
但是当我将它部署在互联网服务器上时,我必须更改这个文件夹的链接,你能帮我怎么做吗?我可以在 Directory.GetFiles() 中使用相对链接还是如何使用?
将路径放在您的web.config中。无论如何,您不应该是硬编码路径。如果将来发生变化怎么办?
在您的设置中添加:
<appSettings>
<add key="myPath" value="D:\project\images"/>
</appSettings>
...然后从您的应用程序中调用它:
var myPath = WebConfigurationManager.AppSettings["myPath"];
如果您真的想发疯,请查看web.config 转换,以便在您发布时,您的发布配置将被转换并为您应用!
在 web.config 中有类似的东西:
<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 文件来为该应用设置编写所需的值。
执行此操作的正确方法是使用Server.MapPath ,它将您的 Web 应用程序中的虚拟路径映射到服务器中的物理路径。