none
URI держит файл RRS feed

  • Вопрос

  • Добрый день! Коллеги такой вопрос. Создан URI, он указывает на некий графический файл. На форме лежит PictureBox. Программа устанавливает источник PictureBox'у из этого Uri. Все гут, картинка показывается. При закрытии программы необходимо удалить данный файл. Не получается, пишет, что он заблокирован.
    Это URI держит файл?! Как это обойти?
    var builder = new UriBuilder 
    { 
       Path = dlgOpenFile.FileName,
       Scheme = "file",
       Host = string.Empty 
    };
    
    picBox.Image = new Bitmap(builder.Uri.LocalPath);
    
    Спасибо!
    • Перемещено Siddharth Chavan 1 октября 2010 г. 21:43 MSDN Forums Consolidation (От:Visual C#)
    11 марта 2010 г. 6:24

Ответы

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

    System.IO.FileStream fs = 
     new System.IO.FileStream("C:\WINNT\Web\Wallpaper\Fly Away.jpg", 
         IO.FileMode.Open, IO.FileAccess.Read);
    PictureBox1.Image = System.Drawing.Image.FromStream(fs);
    fs.Close();
    • Помечено в качестве ответа foux 11 марта 2010 г. 6:50
    • Снята пометка об ответе foux 11 марта 2010 г. 6:50
    • Помечено в качестве ответа foux 11 марта 2010 г. 6:51
    11 марта 2010 г. 6:33

Все ответы

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

    System.IO.FileStream fs = 
     new System.IO.FileStream("C:\WINNT\Web\Wallpaper\Fly Away.jpg", 
         IO.FileMode.Open, IO.FileAccess.Read);
    PictureBox1.Image = System.Drawing.Image.FromStream(fs);
    fs.Close();
    • Помечено в качестве ответа foux 11 марта 2010 г. 6:50
    • Снята пометка об ответе foux 11 марта 2010 г. 6:50
    • Помечено в качестве ответа foux 11 марта 2010 г. 6:51
    11 марта 2010 г. 6:33
  • Спасибо, Евгений!
    11 марта 2010 г. 6:51