首页 > 解决方案 > 如何读取目录并获取所有 HTML 文件的数组

问题描述

这是我之前在这里找到的问题的第二部分: 如何在字符串中使用变量

现在我有了一个可以使用的目录,我需要找到该目录中的所有 HTML 文件并使用当前格式的数组。

HMI.FileManager.addPages(
[
    { name: "Default", title: "Starter Page", url: "Files/HMIBuilder/Default/index.html" },
]);

此格式会自动加载添加到此的所有页面。因此,通过在当前目录中进行搜索,然后执行一个数组,它应该会生成该目录中的所有页面。

我已经在目录的字符串中有一个变量,有没有办法使用它来访问目录并在其中搜索 .html 文件,然后加载这些文件的数组或者可能是一个foreach

这不起作用,但可能可以使用..

htmlFiles = global("*.html")
foreach (htmlFiles as file) {
 path == path(file)
 {name: "path['filename']", title: "path['filename']", url: "path['basename']"},

 }

编辑:我已经添加了这个,它似乎适用于我需要做的事情。但是,它给了我一个错误,即标签未定义..

 @{ 
    var files = Request.QueryString["name"];
    string[] filePaths Directory.GetFiles(Server.MapPath("~/Files/HMIBuilder/"), files);

           foreach (string name in filePaths)
           {
              { name: name, title: name, url: filePaths },
           }
   }

编辑——将上面的代码更改为下面的代码。我现在收到一个错误,上面写着“名称”是一个变量,但像一个类型一样使用......而 filePaths 变量很好......我很困惑。

@{ 
   var files = Request.QueryString["name"];
   string[] filePaths = Directory.GetFiles(Server.MapPath("~/Files/HMIBuilder/"), files);

    foreach (string name in filePaths) {

       @:{ name: @{name}, title: @{name}, url: @{filePaths} },

     }

 }

编辑:

经过大量的抛出代码后,我终于让它工作了。下面是最终代码的样子。

  @{
     var files = Request.QueryString["name"];
     var path = ("/Files/HMIBuilder/");
     var fullpath = Path.Combine(path, files);
     DirectoryInfo d = new DirectoryInfo(Server.MapPath(fullpath));
     FileInfo[] Files = d.GetFiles("*.html");

     foreach (FileInfo name in Files) {


         @:{ name: "@name", title: "@name", url: "@fullpath/@name" },

     }
  } 

标签: javascriptc#jquery

解决方案


推荐阅读