1

当我建立我的 .net 站点时,我使用 Directory.GetFiles(@"D:\project\images"); 检索文件路径。

但是当我将它部署在互联网服务器上时,我必须更改这个文件夹的链接,你能帮我怎么做吗?我可以在 Directory.GetFiles() 中使用相对链接还是如何使用?

4

3 回答 3

3

将路径放在您的web.config中。无论如何,您不应该是硬编码路径。如果将来发生变化怎么办?

在您的设置中添加:

<appSettings>
    <add key="myPath" value="D:\project\images"/>
</appSettings>

...然后从您的应用程序中调用它:

var myPath = WebConfigurationManager.AppSettings["myPath"];

如果您真的想发疯,请查看web.config 转换,以便在您发布时,您的发布配置将被转换并为您应用!

于 2013-04-12T19:14:41.910 回答
1

在 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 文件来为该应用设置编写所需的值。

于 2013-04-12T19:17:40.763 回答
1

执行此操作的正确方法是使用Server.MapPath ,它将您的 Web 应用程序中的虚拟路径映射到服务器中的物理路径。

于 2013-04-12T19:14:06.297 回答