2010-01-18 4 views
0

솔루션 탐색기에 문서 파일을 저장하면 메일을 통해 해당 문서 파일을 보낸 다음 문서 파일을 삭제하려고합니다. 다음과 같은 오류가 표시됩니다 : process being used by another process.C#을 사용하여 asp.net에서 파일을 삭제 하시겠습니까?

다음은 내 코드를 찾으십시오

protected void btnsubmit_Click(object sender, EventArgs e) 
    {   
     if (Label1.Text == txtverifytxt.Text) 
     { 
      if (rdoSevice.SelectedItem.Value == "1") 
      { 
       PackageType = ddlindPackages.SelectedItem.Text; 
      } 
      else if (rdoSevice.SelectedItem.Value == "2") 
      { 
       PackageType = ddlCorpPack.SelectedItem.Text; 
      } 
      if (ResumeUpload.PostedFile != null) 
      { 

       HttpPostedFile ulFile = ResumeUpload.PostedFile; 
       string file = ulFile.FileName.ToString(); 
       FileInfo fi = new FileInfo(file); 

       string ext = fi.Extension.ToUpper(); 
       if (ext == ".DOC" || ext == ".DOCX") 
       { 
        int nFileLen = ulFile.ContentLength; 
        if (nFileLen > 0) 
        { 
         strFileName = Path.GetFileName(ResumeUpload.PostedFile.FileName); 
         strFileName = Page.MapPath("") + "\\Attachments\\" + strFileName; 
         ResumeUpload.PostedFile.SaveAs(strFileName); 
        } 
        sendingmail(); 
        FileInfo fi1 = new FileInfo(strFileName); 
        ResumeUpload.FileContent.Dispose(); 
        Label2.Visible = true; 
        Label2.Text = "Request sent sucessfully"; 
        fi1.Delete(); 
        //if (File.Exists(strFileName)) 
        //{ 
        // File.Delete(strFileName); 
        //} 
        ClearAll(tblOrdernow); 
        //Response.Redirect("CheckOut.aspx"); 
       } 
       else 
       { 
        Label2.Visible = true; 
        Label2.Text = "Upload only word documents.."; 
       } 
      } 
      else 
      { 
       Label2.Visible = true; 
       Label2.Text = "Do not upload empty document.."; 
      } 
     } 
     else 
     { 

      Label2.Visible = true; 
      Label2.Text = "Verify Image not Matched"; 
      Label1.Text = ran(); 

     } 
    } 

답변

2

원인은 폐쇄되지 않은

ResumeUpload.PostedFile.SaveAs 

에서 만든 스트림입니다. 스트림을 처분하거나 닫음으로써 강제로 시도 할 수 있습니다.

의 InputStream
업로드 된 파일 포인트 파일의 내용을 읽어 을 준비하는 Stream 개체를 가져옵니다 : HttpPostedFile 당신이 사용할 수있는의 InputStream 속성이 있습니다.

+0

Mr.Chris S ResumeUpload.PostedFile 내가이 만 얻을, 내가 처리하지 또는 가까운 내가하지 스탠드 –

+0

이 덕분에 시도 .InputStream.Close 내 제안이지만, 그것을 시도하지 않았습니다 –

+0

죄송 Mr.Chris의 S 전 업데이트되었습니다 응답 –

관련 문제