2015-04-26 3 views
0

я пытаюсь сохранить новый образ, но потом C# дать мне ошибку, как на следующем рисунке enter image description hereC#: Сохранение ошибки изображения

ошибка, обратитесь к следующему коду

string oldfilename = valid.getStringBeforeAnyChar(fi.Name, '.'); //"1" 
string newfilename = FolderDir + "\\" + subfolderoutput + "\\" + oldfilename + Copyright + fi.Extension; 
//"C:\\Users\\RHIT ! Solution\\Desktop\\direktori\\Output\\1[Watermarked by : RHIT Watermarker ].png" 
try 
{ 
    imgPhoto.Save(newfilename, ImageFormat.Jpeg); // <-- error here 
    imgPhoto.Dispose(); 
    imgWatermark.Dispose(); 
} 
catch (Exception e) 
{ 
    MessageBox.Show(e.ToString()); 
} 

, где я пойти не так? как это решить? Я не знаю, может быть output ограничение папки для создания нового файла

+2

Является ли это двоеточие ':' в вашем пути к файлу? Пути к файлу не допускают двоеточие (':'). –

+0

Да! Ты прав ! так, каков символ, который запрещен в пути к файлу? – Cignitor

+0

https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx#naming_conventions Существует список, который я добавлю в качестве ответа с дополнительной информацией. –

ответ

0

Windows File Paths не поддерживает двоеточие (:) характера, а также несколько других названия файлов:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx#naming_conventions

В суммировании; недопустимые символы:

  1. < (меньше)
  2. > (больше)
  3. : (двоеточие)
  4. " (двойные кавычки)
  5. / (прямой слэш)
  6. \ (обратная косая черта)
  7. | (вертикальная полоса или труба)
  8. ? (знак вопроса)
  9. * (звездочка)

обратной косой (\) символ может появиться только при использовании в качестве папки/разделитель каталогов.

0

Это почти что-то не так с newFileName. Вы можете просмотреть значение этого параметра в отладчике, чтобы узнать, что может быть amis с указанным именем файла &.

Как общий совет, лучше объединить каталог и имя файла в путь, используя Path.Combine(), который разбирает множество потенциальных проблем, таких как двойные или отсутствующие «\».

+0

Создает ли 'Path.Combine()' подкаталог автоматически при отсутствии подкаталога? – Cignitor

Смежные вопросы