在我的.net网站上使用Directory.GetFiles

时间:2013-04-12 19:07:32

标签: c# .net

当我构建我的.net网站时,我使用了检索文件路径 Directory.GetFiles(@ “d:\项目\图像”);

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

3 个答案:

答案 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)

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文件来为该appsetting编写所需的值。