zoukankan      html  css  js  c++  java
  • Image.FormFile引起的若干问题

    1.文件正由另一进程使用,因此该进程无法访问该文件

    问题描述:

    this.pictureBox1.Image=Image.FormFile(sourceFile);

    ...

    把sourceFile移动到另外一个文件夹

    if(this.pictureBox1.Image!=null)

    {

      this.picutreBox1.Image.Dispose();

    }

    File.Copy(sourceFile,destinatFile);

    File.Delete(sourceFile);

    结果时不时的在File.Delete(sourceFile);处抛出异常:文件正由另一进程使用,因此该进程无法访问该文件。

    File.Copy(sourceFile,destinatFile);

    File.Delete(sourceFile);

    换成:File.Move(sourceFile,destinatFile);问题依然如故。

    问题应该在this.pictureBox1.Image=Image.FormFile(sourceFile);在msdn上Image.FromFile(string)

    有这样的描述:在释放 Image 之前,此文件一直保持锁定。

    解决办法:

    Image img1=Image.FromFile(sourceFile);

    Image img2=new Bitmap(img1);

    img1.Dispose();

    this.pictureBox1.Image=img2;

    2.内存不足,或GDI+发生了一般性错误。

    问题描述:在Image.FromFile(souceFile)出抛出System.OutOfMemoryException"内存不足"异常。

    出现这种问题是由于souceFile文件被破坏,或者是空图片。

    可以直接catch掉或在catch中做个标识。另外用

    FileInfo fi=new FileInfo(souceFile);

    if(fi.Length>0)

    {

    }

    做个判断。

     附:http://blog.csdn.net/Haliput/archive/2008/11/20/3339611.aspx,我尝试了该贴的情况

    我直接执行Image img=Image.FromFile(Application.StartPath+“\\”+souceFileName);

    则不会报异常,

    我按照该帖作者的代码执行 :按Ctrl+F5执行,会报出该异常。如果我直接按F5调试执行者不会报该异常。

  • 相关阅读:
    第六日会议博客
    第五日会议博客
    第四日会议博客
    第三日会议博客
    第二日会议博客
    第一日会议博客
    Alpha总结展望——前事不忘后事之师
    请坐,我们是专业团队——Alpha冲刺
    微信小程序测试总结
    WeChair项目Beta冲刺(4/10)
  • 原文地址:https://www.cnblogs.com/shunliy/p/1624901.html
Copyright © 2011-2022 走看看