Image.FromFile откроет путь, но не строку, содержащую тот же путь? - PullRequest
1 голос
/ 12 января 2012
// The following line works.
imagebox.Image = Image.FromFile("C:/Users/Admin/Desktop/apps/pic1.png");

// The following line does not work.
imagebox.Image = Image.FromFile(imgPath);

// the test Text Box displays "C:/Users/Admin/Desktop/apps/pic1.png", exactly like in the first line
test.Text = imgPath;

Когда я нажимаю кнопку, которая должна изменить изображение в картинке, я получаю сообщение об ошибке: «1002 * недопустимые символы в пути , а ArgumentException не обрабатывается

извините, что не делал этого в первый раз.

k, поэтому фактическое имя файла вводится в текстовое поле. Затем я преобразую этот текст в строку и добавляю его в начало и конец, чтобы создать полный путь к файлу.

string path = "\"C:/Users/Admin/Desktop/apps/";
string ext1 = ".png\"";


ID = idBox.Text;
imgPath = path + ID + ext1;
try
{
    imagebox.Image = Image.FromFile(imgPath);
}
catch (System.IO.FileNotFoundException)
{
    MessageBox.Show("Invalid Student or Faculty ID.");
}

Ответы [ 4 ]

2 голосов
/ 12 января 2012

Просто предположение, но если текстовое поле буквально отображает:

"C: /Users/Admin/Desktop/apps/pic1.png"

Тогда у вас есть цитаты на вашем пути, что плохо. В вашем коде вы используете кавычки для определения строки, если вы получаете ввод от пользователя, вам не нужны кавычки.

1 голос
/ 12 января 2012

Обе строки должны работать просто отлично, поэтому очевидно, что ваш код делает не то, что вы думаете делает.

Я вижу, вы используете текстовые поля для проверки значений ваших переменных? Сделайте себе одолжение и учитесь:

  1. Diagnostics.Trace.WriteLine() и

  2. Как использовать отладчик.

(самое главное, отладчик.) После этого вы сможете выяснить, что не так с вашим кодом. Потому что из того, что вы показали нам, невозможно найти в этом ничего плохого.

- О да, и, пожалуйста, в следующий раз, когда вы разместите здесь что-то, говорящее нам «это не работает», пожалуйста, сообщите нам , в точности, как это не работает . Это молча ничего не делает? Это исключение? Загружает ли оно изображение, отличное от того, которое вы ожидали? Это терпит крах и горит? Это немного важно.

0 голосов
/ 12 января 2012

Твои косые черты неверны.Попробуйте сделать его дословной строкой, например:

@ "C: \ Users \ Admin \ Desktop \ apps \ pic1.png"

0 голосов
/ 12 января 2012

Изменить путь,

string imgPath=@"c:\Users\Admin\Desktop\apps\pic1.png";

РЕДАКТИРОВАТЬ: путь содержит недопустимый символ.

string path = @"C:\Users\Admin\Desktop\apps\";
string ext1 = ".png";
ID = idBox.Text;
imgPath = path + ID + ext1;
if(System.IO.File.Exists(imgPath))
   imagebox.Image = Image.FromFile(imgPath);
...