Ограничение расширения файла до .cor (только) - PullRequest
1 голос
/ 24 июня 2010

Как я могу ограничить только .cor файлы, которые будут добавлены в список. Код ниже позволяет добавлять в список .corx, .corxx, .corxxx. Я хочу только файлы .cor. Это возможно?

private void btn_models_Click(object sender, EventArgs e)
{
    DialogResult res = dlg_find_folder.ShowDialog();
    if (res == DialogResult.OK)
    {
        tbx_models.Text = dlg_find_folder.SelectedPath;

        populateChecklist(tbx_models.Text, "cor");
        cbx_all.CheckState = System.Windows.Forms.CheckState.Checked;
    }
}

/// <summary>
/// Function populates the models checklist based on the models found in the specified folder.
/// </summary>
/// <param name="directory">Directory in which to search for files</param>
/// <param name="extension">File extension given without period</param>
private void populateChecklist(String directory, String extension)
{
    clb_run_list.Items.Clear();

    System.Collections.IEnumerator enumerator;
    String mdl_name;

    try
    {
        enumerator = System.IO.Directory.GetFiles(directory, "*." + extension).GetEnumerator();

        while (enumerator.MoveNext())
        {
            mdl_name = parse_file_name((String)enumerator.Current, directory, extension);
            clb_run_list.Items.Add(mdl_name);
        }
    }
    catch
    {
        //above code will fail if the initially specified directory does not exist
        //MessageBox.Show("The specified directory does not exist. Please select a valid directory.");
    }

    return;
}

Ответы [ 3 ]

4 голосов
/ 24 июня 2010

Как насчет;

if (Path.GetExtension(mdl_name).Equals(".cor", StringComparison.OrdinalIgnoreCase))
  clb_run_list.Items.Add(mdl_name);
3 голосов
/ 24 июня 2010

Проверить FileName.EndsWith(extension) перед добавлением в список?

2 голосов
/ 24 июня 2010

Это артефакт поддержки Windows для старых имен файлов DOS 8.3. Файлы с расширением, например .corxxx, сопоставляются с именем 8.3, например Blah ~ 1.cor. И будет соответствовать вашему шаблону.

Ничего не поделаешь, только дважды проверь имя файла, которое ты получишь. Использовать Path.GetExtension ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...