Это вторая часть вопроса, который я задавал ранее, который можно найти здесь: Как использовать переменную в строке
Теперь, когда у меня есть каталог, который я могу использовать, мне нужно найтивсе 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" },
}
}