System.IO.IOException:进程无法访问文件'file / file'

时间:2012-04-30 11:12:48

标签: c# exception .net

当我尝试上传我的数据和图片时,我遇到了一些问题。

问题是:

System.IO.IOException: The process cannot access the file 'C:\MyWebSites\Class\OriginalImages\IMG_9209.JPG' because it is being used by another process. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode) at System.Web.HttpPostedFile.SaveAs(String filename) at Admin_InsertStudent.Button1_Click(Object sender, EventArgs e)

C#:

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; using System.Text;

public partial class Admin_InsertStudent : System.Web.UI.Page {
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        try
        {
        if (FileUpload1.HasFile)
        {
            string tempPath = "OriginalImages";
            string imgPath = "StudentImages";
            string savePath = Path.Combine(Request.PhysicalApplicationPath, tempPath);
            string TempImagePath = Path.Combine(savePath, FileUpload1.FileName);

            string imgSavePath = Path.Combine(Request.PhysicalApplicationPath, imgPath);
            string StudentImageNormal = Path.Combine(imgSavePath, FileUpload1.FileName);
            string StudentImageThumbnail = Path.Combine(imgSavePath, "t__" + FileUpload1.FileName);
            string extension = Path.GetExtension(FileUpload1.FileName);

            switch (extension.ToLower())
            {
                case ".png":
                    goto case "Upload";
                case ".gif":
                    goto case "Upload";
                case ".jpg":
                    goto case "Upload";
                case "jpeg":
                    goto case "Upload";

                case "Upload":
                    FileUpload1.SaveAs(TempImagePath);

                    ImageTools.GenerateTumbnail(TempImagePath,StudentImageNormal, 400, 300, true, "High");

                    ImageTools.GenerateTumbnail(TempImagePath, StudentImageThumbnail, 120, 90, true, "medium");

                    lblMessage.Text = "Billedet" + FileUpload1 + "er nu uploadet";

                    string FirstName = Convert.ToString(txtFirstName.Text);
                    string MiddleName = Convert.ToString(txtMiddelName.Text);
                    string LastName = Convert.ToString(txtLastName.Text);
                    string BirthDay = Convert.ToString(txtBirthDay.Text);
                    string City = Convert.ToString(txtCity.Text);
                    string Pic = "OriginalImages/StudentImages/" + FileUpload1.FileName;
                    string WebSite = Convert.ToString(txtWebSite.Text);

                    break;

                default:
                    lblMessage.Text = "Denne Filetype er ikke tilladt";
                    return;
            }

        }
    }
    catch (Exception err)
    {
        lblMessage.Text = err.ToString();
    }
        } }

希望有人可以帮助我:)。

1 个答案:

答案 0 :(得分:1)

上传文件后,您必须将其释放。

yourFile.Dispose();

MSDN

  

使用此方法关闭或释放非托管资源,例如文件,   流和由实现的类的实例持有的句柄   这个界面。按照惯例,此方法用于所有任务   与释放对象持有的资源或准备一个对象相关联   对象重用。