Проблема с разрешением с bitmap.Save () - PullRequest
0 голосов
/ 05 апреля 2011

У меня есть этот простой код:


System.Drawing.Bitmap bm = bitmapSourceToBitmap(source);
try
            {
                bm.Save(@"C:\Seva\testeImagem.jpg");
            }
            catch (Exception ex)
            {

            }

Это выдает: Общая ошибка GDI +.Во всяком случае, я нашел, и люди говорят, что проблема с разрешениями.Как я могу дать разрешения на это?Спасибо

Ответы [ 3 ]

1 голос
/ 05 апреля 2011

Сначала выясните, под какими учетными данными работает код.

Затем проверьте (и, при необходимости, исправьте) параметры безопасности / NTFS для папки Seva.

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

0 голосов
/ 05 апреля 2011

Не могли бы вы проверить, существует ли папка?

void BitmapCopy(System.Drawing.Bitmap source, string filename) {
  if (!String.IsNullOrEmpty(filename) && (source != null)) {
    string dirName = @"C:\Seva";
    if (!System.IO.Directory.Exists(dirName)) {
      dirName = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    }
    string bmpFile = System.IO.Path.Combine(dirName, filename);
    System.Drawing.Bitmap bm = bitmapSourceToBitmap(source);
    try {
      bm.Save(bmpFile);
    } catch (ArgumentNullException ex) {
      Console.WriteLine(ex.Message);
    } catch (System.Runtime.InteropServices.ExternalException ex) {
      Console.WriteLine(ex.Message);
    }

  }
}
0 голосов
/ 05 апреля 2011

вместо сохранения в C: \ Seva \ testeImagem.jpg, почему бы не попробовать сохранить в

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), 
             "testeImagem.jpg");

Необходимо убедиться, что папка Seva существует в C: \ и что текущий пользователь имеет права нанаписать в \ создать эту папку.Кроме того, считается плохой практикой писать в папки, которые не принадлежат пользователю.Если пользователь работает от имени обычного пользователя (не администратора), это приводит к исключениям прав доступа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...