У меня есть проект веб-формы asp.net C#. Я создал раскрывающийся список, привязанный к локальному каталогу загрузки. Каталог содержит видеофайлы. Каждое видео имеет 3 расширения файлов (mp4, ogv и webm). Я хочу, чтобы одно имя каждого файла отображалось в списке без расширения. В настоящее время мой выпадающий список выглядит следующим образом:Как удалить дубликаты из раскрывающегося списка asp.net, заполняемого именами файлов из каталога?
video-1.mp4
video-1.ogv
video-1.webm
video-2.mp4
video-2.ogv
video-2.webm
Я хочу, чтобы этот список, чтобы выглядеть следующим образом:
video-1
video-2
Вот мой код позади:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
}
if (!IsPostBack)
{
string[] filePaths = Directory.GetFiles(Server.MapPath("~/Uploads/"));
List<ListItem> files = new List<ListItem>();
foreach (string filePath in filePaths)
{
var item = new ListItem(Path.GetFileNameWithoutExtension(filePath), filePath);
if (!files.Contains(item))
files.Add(new ListItem(Path.GetFileName(filePath), filePath));
}
DropDownList1.DataSource = files;
DropDownList1.DataTextField = "";
DropDownList1.DataValueField = "";
DropDownList1.DataBind();
}
}
protected void BindGrid()
{
string[] filePaths = Directory.GetFiles(Server.MapPath("~/Uploads/"));
List<ListItem> files = new List<ListItem>();
foreach (string filePath in filePaths)
{
files.Add(new ListItem(Path.GetFileName(filePath), filePath));
}
GridView1.DataSource = files;
GridView1.DataBind();
}
Это то, что мой текущий выпадающий список выглядит. Я хочу удалить дубликаты.
Вы должны быть в состоянии использовать [Path.GetFileNameWitoutExtension] (https://msdn.microsoft.com/en-us/library/system.io.path. getfilenamewithoutextension (v = vs.110) .aspx), чтобы получить имена файлов без путей. – DHP
Я только что понял, что я написал неправильный код. Код, который я опубликовал, предназначен для списка сетки. Вот код для раскрывающегося списка: –
Я использовал приведенный ниже код balexandre и как мой список не показывает расширение файла. Тем не менее, он все еще показывает повторяющиеся имена. Какие-либо предложения? –