簡體   English   中英

File.Delete被另一個進程使用

[英]File.Delete being used by another process

文件刪除問題-請幫助我,我無法刪除文件..當我嘗試刪除文件時,我得到了這個提示

c#File.Delete-文件被另一個進程使用c#File.Delete-文件被另一個進程使用

    protected void Button2_Click1(object sender, EventArgs e)
{

    HttpFileCollection hfc = Request.Files;
    string x = "";
    string foldername = DateTime.Now.ToString().Trim().Replace(" ", "").Replace(":", "").Replace("/", "");
    string foldername1 = foldername+"1";
    Directory.CreateDirectory(Server.MapPath("~/IMAGEUPLOADCENTER/") + foldername);
    Directory.CreateDirectory(Server.MapPath("~/IMAGEUPLOADCENTER/") + foldername1);
    for (int i = 0; i < hfc.Count; i++)
    {
        HttpPostedFile hpf = hfc[i];
        if (hpf.ContentLength > 0)
        {
            string name =(DateTime.Now.ToString() + i + hpf.FileName).ToString().Trim().Replace(" ", "").Replace(":", "").Replace("/", "");
            hpf.SaveAs(Server.MapPath("~/IMAGEUPLOADCENTER/" + foldername + "/") + name);
            ResizeImageWidth(497, Server.MapPath("~/IMAGEUPLOADCENTER/" + foldername + "/") + name, Server.MapPath("~/IMAGEUPLOADCENTER/" + foldername1 + "/") + name);
            System.Drawing.Image upImage = System.Drawing.Image.FromFile(Server.MapPath("~/IMAGEUPLOADCENTER/" + foldername1 + "/") + name);  //System.Drawing.Image.FromStream(FU1.PostedFile.InputStream);
            System.Drawing.Image logoImage = System.Drawing.Image.FromFile(Server.MapPath("~/pages002248Xc54/UploadImages/LOGOnew.png"));
            using (Graphics g = Graphics.FromImage(upImage))
            {
                g.DrawImage(logoImage, new Point(upImage.Width - logoImage.Width - 10, 10));
                upImage.Save(Server.MapPath("~/IMAGEUPLOADCENTER/" + foldername + "/") + name);
                File.Delete(Server.MapPath("~/IMAGEUPLOADCENTER/" + foldername1 + "/") + name);
             //   Image1.ImageUrl = "~/UploadFiles/2" + "//" + fileName;
            }
            x = x + "</br><img src='http://hela.co.il/IMAGEUPLOADCENTER/" + foldername + "/" + name + "'/></br>";
        }
    }
    TextArea1.InnerText = x;
    FileUpload1.Visible = false;
    Button2.Visible = false;
}

您的文件已被您鎖定,這使您無法刪除它。 Image.FromFile方法鎖定用於創建對象的文件,直到處理完Image對象為止。 因此,在這種情況下,圖像文件將保持鎖定狀態,直到您處理upImage。

處理完圖像后,將File.Delete移至,它將起作用。 在下面的代碼中,我向每個變量添加了using語句,以便它們可以被處置(並解鎖文件),然后將delete語句移至using塊之外(在處置Image對象之后)。

using(System.Drawing.Image upImage =  System.Drawing.Image.FromFile(Server.MapPath("~/IMAGEUPLOADCENTER/" + foldername1 + "/") + name))     
using(System.Drawing.Image logoImage = System.Drawing.Image.FromFile(Server.MapPath("~/pages002248Xc54/UploadImages/LOGOnew.png")))
using (Graphics g = Graphics.FromImage(upImage))
{
    g.DrawImage(logoImage, new Point(upImage.Width - logoImage.Width - 10, 10));
    upImage.Save(Server.MapPath("~/IMAGEUPLOADCENTER/" + foldername + "/") + name);
}
File.Delete(Server.MapPath("~/IMAGEUPLOADCENTER/" + foldername1 + "/") + name);

Image.FromFile方法(字符串)

使用語句(C#)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM