как получить имена файлов в текущем каталоге приложения? - PullRequest
0 голосов
/ 05 мая 2020

Я попытался применить следующий код, чтобы получить все страницы ASPX в каталоге приложения, и он возвращается с ошибками. Однако у меня проблема со многими фазами. И это можно решить, если я знаю, как получить имена файлов в текущем каталоге, используя несколько условий.

  1. Request.ApplicationPath не возвращается со страницами ASPX
  2. Мне нужны все страницы ASPX, которых нет в папке администратора
  3. Мне нужны имена для отображения в ListBox1 и каталоги для значений ListBox1

C#

string dir = Request.ApplicationPath;
string[] files = new DirectoryInfo(dir).GetFiles("*.aspx", SearchOption.AllDirectories).Select(o => o.Name).ToArray();
//.Where(s => s.notIntheFolder("Admin"));


ListBox1.DataSource = files;
ListBox1.DataBind();

Заранее спасибо.

1 Ответ

0 голосов
/ 05 мая 2020

Внесите следующие изменения

string dir = Server.MapPath(Request.ApplicationPath);

Для страниц ASPX, которые не находятся в папке администратора, используйте LINQ

    string dir = Server.MapPath(Request.ApplicationPath);

    // which will consider all directories (not excluding any)  
    string[] files = new DirectoryInfo(dir).GetFiles("*.aspx", SearchOption.AllDirectories).Select(o => o.Name).ToArray();

    // To get files under folders except "Admin

    // be careful about the case Word Admin - (ie. The Directory name has to be exactly same to avoid, otherwise convert both to lower case and compare) 
    var dirs = new DirectoryInfo(dir).GetDirectories().Where(q => q.Name != "Admin");

    List<string> filesInDirs = new List<string>();
    foreach (var dirName in dirs)
    {
        filesInDirs.AddRange(new DirectoryInfo(dirName.FullName).GetFiles("*.aspx", SearchOption.AllDirectories).Select(o => o.Name));
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...