Как запустить файл по его расширению?

338
28 декабря 2017, 21:55

Подскажите, как запускать файл, например с расширением *.txt через приложение, которое увидит его расширение и запустит форму?

Например, берем файл test.txt и перетаскиваем его на приложение, если файл содержит расширение *.txt, то приложение открывает форму, если файл содержит расширение *.jpg, то приложение выведет окно с ошибкой.

Есть пример, но на именных файлах:

static class Program
{
    /// <summary>
    /// Главная точка входа для приложения.
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
        var whitelist = new HashSet<string>{@"C:\test.txt", @"C:\test2.txt"};
        if (args.Any() && whitelist.Contains(args[0]))
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
        else
        {
            MessageBox.Show("Файл не прошел проверку");
        }
    }
}
Answer 1

Скорее всего, вам нужно сделать так

if (args.Any() && args[0].EndsWith(".txt"))
  {
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
  }
  else
  {
    MessageBox.Show("Файл не прошел проверку");
  }

С учетом дополнения

var whitelist = new HashSet<string>{".txt", ".jpg"};
if (args.Any() && whitelist.Contains(Path.GetExtension(args[0])))
{
   Application.EnableVisualStyles();
   Application.SetCompatibleTextRenderingDefault(false);
   Application.Run(new Form1());
}
else
{
    MessageBox.Show("Файл не прошел проверку");
}
READ ALSO
Помогите с программой для тестирования

Помогите с программой для тестирования

Пишу прогу, которая проводит тестированиеКогда выбран правильный ответ подгружает следующий вопрос, если неправильный, то просто выкидает...

369
Считывание массива и ошибка System.ArgumentException

Считывание массива и ошибка System.ArgumentException

Есть олимпиадная задача:

291
Создание структуры из массива байт

Создание структуры из массива байт

В исходном коде, который зашит в устройство есть такая структура:

368
Странный баг с мусорными строками в Unity

Странный баг с мусорными строками в Unity

Появился ооочень странный наполовину плавающий баг с мусорными строками

304