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

次に、aspxフィルターでDirectory.EnumerateFiles()を使用して、すべてのファイルを取得できます。

于 2013-03-16T22:24:34.003 に答える