2011-11-04 11 views
5

FileUploadコントロールでファイルをアップロードしようとしています。ファイルがアップロードされると、そのファイルから情報を抽出して削除します。アップロード後にファイルを削除する

「D私は、それをアップロードして保存し、そこから情報を取得するために管理し、しかし、私はそれを削除しようとしたとき、私はfollwing例外を取得 「プロセスはファイルにアクセスできません

:** を省略 * \ IIS ** \ V75個人ny.csv」それは別のプロセスによって使用されているため。

string fn = Path.GetFileName(fu.PostedFile.FileName); 
     string SaveLocation = Server.MapPath("UploadedCSVFiles") + "\\" + fn; 
     FileInfo fi = new FileInfo(SaveLocation); 

      fu.PostedFile.SaveAs(SaveLocation); 
      fu.PostedFile.InputStream.Dispose(); 
      DataTable dt = AMethodThatUsesFile(SaveLocation); 
      fi.Delete(); 
+1

AMethodThatUsesFile()の内容を知る必要があります –

+2

AMethodThatUsesFile(SaveLocation);メソッドを指定しました。 StreamReaderのようなクラスを使用してファイルを読み取る場合は、StreamReader.Close();を使用してリーダーを閉じてください。メソッドを削除する前に – Prasanth

+0

@Prasanthそれをした!ありがとう! – Lautaro

答えて

7

ファイルを削除するには、このコードを試してみてください。

  System.IO.File.Delete(SaveLocation); 

あなたは方法AMethodThatUsesFile(SaveLocation)を指定;.た場合それはStのようなクラスを使用しますファイルを読み込むには、StreamReader.Close();を使用してリーダーを閉じてください。削除する前にメソッド

+0

ここにファイルの存在を確認する必要があるという明白な理由はありません。エラーは、ファイルが確かに存在するかどうかを示しています。問題はおそらく前述の(および含まれていない)方法にあります。 –

1

削除する前にfiを処理してください。その後、私たちFile.Delete()。使い捨てオブジェクトを使用するときはusingステートメントを使用するか、使用後は処分してください。

+0

FileInfoはIDisposableを実装していますか? –

+0

@Chamika Sandamalこれはそうではありません。私はすでにそれを試みました。 – Lautaro

0
using System.io 

File.Delete(Server.MapPath("../Nurturing/" + fnevents)); 
      FileInfo fInfoEvent; 
      fInfoEvent = new FileInfo(fnevents); 
      fInfoEvent.Delete(); 

ここfneventsはuが削除されたファイルの名前です。 育成はフォルダの名前です。

関連する問題