2017-03-17 18 views
1

画像をサーバーフォルダにアップロードしてサイズ変更した後、迷惑フォルダから画像を削除しようとしています。しかし、私は迷惑フォルダから画像を削除させないこのメッセージを受け取りました。この問題を解決するにはどうすればよいですか?別のプロセスasp.net c#で使用されているため、プロセスはファイルにアクセスできません。

if (FileUpload1.HasFile) 
{ 
    long fileSize = FileUpload1.FileContent.Length; 
    double sizeinBytes = fileSize * 0.001; 
    FileUpload1.SaveAs(Server.MapPath("~/junk/" + FileUpload1.FileName)); 
    string filepath = Server.MapPath("~/junk/" +FileUpload1.FileName); 

    System.IO.FileStream fs = System.IO.File.OpenRead(filepath); 
    byte[] data = new byte[fs.Length]; 
    fs.Read(data, 0, data.Length); 

    System.IO.MemoryStream ms = new System.IO.MemoryStream(data); 
    System.Drawing.Image image = System.Drawing.Image.FromStream(ms); 
    Bitmap resizedimage = ResizeImage(image, 500, 500); 
    resizedimage.Save(Server.MapPath("~/images/" + FileUpload1.FileName + ".jpeg")); 
    Image1.ImageUrl = "~/images/" + FileUpload1.FileName; 
    var filePath = Server.MapPath("~/junk/" + FileUpload1.FileName); 
    if (File.Exists(filePath)) 
    { 
     File.Delete(filePath); 
    } 
} 
+3

閉じます。または、 "using"ステートメントを使用します。 – Manoj

+0

@Manoj - ありがとう。それが問題を解決した –

答えて

3

は、あなたはそれが配置されますように終了したら、以下のようなあなたのファイルストリームをカプセル化する必要があります。&削除操作の前に、あなたのFileStream(FS)を処分

using(FileStream fs = System.IO.File.OpenRead(filepath)) 
{ 
    //do stuff 
} 

//delete 
0
if (FileUpload1.HasFile) 
      { 
       long fileSize = FileUpload1.FileContent.Length; 
       double sizeinBytes = fileSize * 0.001; 
       FileUpload1.SaveAs(Server.MapPath("~/junk/" + FileUpload1.FileName)); 
       string filepath = Server.MapPath("~/junk/" + FileUpload1.FileName); 

       using (System.IO.FileStream fs = System.IO.File.OpenRead(filepath)) 
       { 
        byte[] data = new byte[fs.Length]; 
        fs.Read(data, 0, data.Length); 

        System.IO.MemoryStream ms = new System.IO.MemoryStream(data); 
        System.Drawing.Image image = System.Drawing.Image.FromStream(ms); 
        Bitmap resizedimage = ResizeImage(image, 500, 500); 
        resizedimage.Save(Server.MapPath("~/images/" + FileUpload1.FileName + ".jpeg")); 
       } 
       Image1.ImageUrl = "~/images/" + FileUpload1.FileName; 
       var filePath = Server.MapPath("~/junk/" + FileUpload1.FileName); 
       if (File.Exists(filePath)) 
       { 
        File.Delete(filePath); 
       } 
      } 
関連する問題