使用asp.net和C#列出目录中的文件夹

.aspx文件:

   Explorer   

.CS文件:

  using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; public partial class view2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string path = "~/"; GetFilesFromDirectory(path); } private static void GetFilesFromDirectory(string DirPath) { try { DirectoryInfo Dir = new DirectoryInfo(DirPath); FileInfo[] FileList = Dir.GetFiles("*.*", SearchOption.AllDirectories); foreach (FileInfo FI in FileList) { Console.WriteLine(FI.FullName); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } 

我想列出特定目录中的文件夹,但它不断显示空白页面。任何人都可以告诉代码中的问题是什么。

在空白页面上显示目录和文件

 // YourPage.aspx <%@ Import Namespace="System.IO" %>   <% foreach (var dir in new DirectoryInfo("E:\\TEMP").GetDirectories()) { %> Directory: <%= dir.Name %>
<% foreach (var file in dir.GetFiles()) { %> <%= file.Name %>
<% } %>
<% } %>

不要使用Console.WriteLine()使用Response.Write() 。 您正在尝试在Web应用程序中写入控制台。

Console.WriteLine将写入控制台,而不是您要返回的网页内容。 您需要向ASPX页面添加容器元素,可能是网格视图或转发器,然后添加从文件后面的代码中分配文件列表(到您添加的HTML元素,使用runat =’server’标签并为其分配ID,然后通过代码中的ID名称引用它。

静态代码隐藏方法中的Response.Write:DIRTY! 另外你没有控制你写的位置。 这有点清洁……

 // YourPage.aspx <%@ Import Namespace="System.IO" %>   
    <% foreach(var file in Directory.GetFiles("C:\\Temp", "*.*", SearchOption.AllDirectories)) { %>
  • <%= file %>
  • <% } %>