Почему openfiledialog говорит «Путь не существует» или «Catastrophi c Ошибка» после выбора файла во второй раз? - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь сделать отображение файла. Когда пользователь выбирает файл, он отображает значок файла в окне. Когда я выбираю значок Google Chrome и нажимаю «OK» в openfiledialog, происходит ожидаемый результат. (см. рисунки ниже)

enter image description here

enter image description here

Однако, когда я выбираю другой значок (например, Словом, это выдает мне ошибку «Путь не существует». (см. рисунки ниже)

enter image description here

enter image description here

Если я выберу другой файл (например, Проводник) ) это дает мне «Катастрофа c Ошибка» (см. рисунки ниже)

enter image description here

enter image description here

По какой-то причине эта проблема возникает только с файлами ярлыков. Для других файлов, таких как .txt или .exe, эта проблема не возникает.

Вот мой код (Add_Item - название кнопки)

private void AddItem_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            if (openFileDialog.ShowDialog() == true)
            {
                foreach (String myfile in openFileDialog.FileNames)
                {
                    // here myfile represent your selected file name

                    //get filename
                    string filename = System.IO.Path.GetFileName(myfile);

                    //TODO: Create settings


                    Icon icon1 =  System.Drawing.Icon.ExtractAssociatedIcon(myfile);
                    Bitmap icon = icon1.ToBitmap();

                    System.Windows.Controls.Image image = new System.Windows.Controls.Image();
                    image.Source = BitmapToImageSource(icon);

                    Tiles.Children.Add(image);



                }
            }
        }

Может кто-нибудь мне помочь ?

Спасибо

1 Ответ

1 голос
/ 11 апреля 2020

Хорошо, {DeferenceLinks = false} исправил мою проблему.

...