3

如何将我的所有 aspx 文件名读取到我的项目中?我需要收集我的 aspx 文件。

我想将它们添加到DropDownList.

喜欢

foreach(ASPX file in myProject.aspx.collections) {
  dropdownlist1.Items.Add(file.name);//Name could be: Default.aspx
}

提前致谢。

编辑:谢谢你的朋友,你所有的答案都是正确的。最后我做了下一个:

string sourceDirectory = Server.MapPath("~/");
DirectoryInfo directoryInfo = new DirectoryInfo(sourceDirectory);
var aspxFiles = Directory.EnumerateFiles(sourceDirectory, "*.aspx", SearchOption.TopDirectoryOnly).Select(Path.GetFileName);

foreach (string currentFile in aspxFiles) {
    this.dropdownlist1.Items.Add(currentFile);
}
4

3 回答 3

3

通过反射,这应该有效:

public static IEnumerable<string> getAspxNames()
{
    var pageTypes = Assembly.GetExecutingAssembly().GetTypes()
        .Where(t => t.BaseType == typeof(Page));
    return pageTypes.Select(t => t.Name).ToList();
}

// ...
foreach(string pageName in getAspxNames())
    dropdownlist1.Items.Add(pageName + ".aspx");
于 2013-03-16T22:31:31.763 回答
2

尝试这个:

var dirPath = Server.MapPath("~/");
var ext = new List<string> {".aspx"};
var fileList = Directory.GetFiles(dirPath, "*.*", SearchOptions.AllDirectories)
     .Where(s => ext.Any(ex => s.EndsWith(ex));

dropdownlist1.DataSource = fileList;
dropdownlist1.DataBind();

仅对文件名执行此操作

foreach(string file in fileList)
 dropdownlist1.Items.Add(Path.GetFileName(file));
于 2013-03-16T22:30:25.597 回答
1

您可以像从文件夹中读取任何文件一样读取文件。

只是您需要将虚拟文件夹引用“转换”为物理文件夹:

http://forums.asp.net/t/1273264.aspx/1

然后你可以使用 Directory.EnumerateFiles() 和 aspx 过滤器来获取所有文件。

于 2013-03-16T22:24:34.003 回答