2016-07-06 16 views
-1

対象のフォルダに同じ名前のファイルとチェックファイルが存在している場合は、アップロードして削除します。ファイル削除IO例外

メッセージ「別のプロセスによって使用されているので...カントのアクセスファイル」 は、しかし、私は上記のポイントラインは

と例外がスローされます。ここにコードは

public ActionResult Upload(int? chunk, string name) 
{ 
    string fileExtension = Path.GetExtension(name); 
    if (fileExtension != ".csv" && fileExtension != ".xml"){ 
     return Json(new { 
      Success=false, 
      Message = "<b>Invalid file type</b>" 
     }, JsonRequestBehavior.AllowGet); 
    } 

    var fileUpload = Request.Files[0]; 
    string fullName = Path.Combine(HttpRuntime.AppDomainAppPath, "App_Data", fileUpload.FileName); 
    if (System.IO.File.Exists(fullName)) 
     System.IO.File.Delete(fullName);// throws exception. 
} 
+0

'File.Exists'は* redundant *です:https://msdn.microsoft.com/en-us/library/system.io.file.delete(v=vs.110).aspx"ファイルが削除されていない場合、例外はスローされません。 –

+0

Fileを操作するときは、すべてのメソッドが閉じていることを確認してください。バッファー、リーダー、作家、IDocumentなど...私は1週間前にあなたと同じ問題を抱えていました。 – Alexis

+0

"削除では、通常のI/Oまたはメモリマップされているファイルに対して開いているファイルは削除されません。 –

答えて

2

エラーはかなり自明です。 削除しようとしているファイルは、すでに別のプロセスで使用されています。 あなたがそのファイルや他のプロセスを使用しているかどうかを確認してください。

あなたがそれを使用している場合は、開いたすべてのリーダーを閉じてください。

+0

リーダーが存在しませんそのアップロードメソッドとチェックファイルの条件が最初に実行されます..しかし、ええ..ページの読み込み機能で私は既存のファイルを読むが、それを閉じない:Dありがとう – TyForHelpDude

関連する問題