c # Форма Windows - Установите правила для загрузки изображения с определенным именем файла, но распознайте несколько расширений. - PullRequest
0 голосов
/ 22 октября 2019

Я не уверен относительно правильного метода определения некоторых правил для определенного изображения в одной из моих папок пользовательских ресурсов. Я разрешаю одно изображение в этой папке с определенным именем, но это одно изображение может быть PNG / JPEG / BMP.

Каким может быть подходящий маршрут для загрузки изображения в качестве BackgroundImage, когда текущая настройка кода длязагрузка изображения будет выглядеть примерно так:

    private void Form1_DragDrop(object sender, DragEventArgs e)
    {
        var data = e.Data.GetData(DataFormats.FileDrop);
        if (data != null)
        {
            var fileNames = data as string[];
            if (fileNames.Length > 0)
                BackgroundImage = Image.FromFile(fileNames[0]);

            BackgroundImage = Image.FromFile(@"image_default\image_default.jpg");
        }

1 Ответ

0 голосов
/ 22 октября 2019

Если я правильно понял вопрос, у вас будет массив имен файлов без расширений, и вы хотите найти этот файл в каталоге? Вы можете получить массив файлов в этом каталоге, затем найти подходящее имя файла (без расширения) и загрузить из него.

   var dir = System.IO.Directory.GetFiles(@"image_default\");
   var imageFile = string.Empty;
   foreach (string file in dir) {
      if (System.IO.Path.GetFileName(file).Equals(fileNames[0]))
         imageFile = file;
   }
   if (imageFile != null)
      BackgroundImage = Image.FromFile(imageFile);
   else
      //some error or handle

Возможно, существует более умный способ поиска в каталоге без итерации помассив, но вы поняли ...

...