2012-01-27 17 views
0

Handler.ashxファイルにtmientファイル(new.txt)を作成する必要がありますが、作成したExcelファイルをnew.txtに一時ファイルとして保存する必要があります問題はここにあります。私は "new.txt"として一時ファイルをハードコードしています。複数のユーザーが同じアプリケーションに何が起こるかを知っています。この問題から克服する方法。スレッド化を使用できますか?Cでスレッドを使用して一時ファイルを作成する方法#

サンプルコード..

if (File.Exists(context.Server.MapPath("new.txt"))) 
      { 
       File.Delete(context.Server.MapPath("new.txt")); 
       xlWorkBook.SaveAs(context.Server.MapPath("new.txt"), Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); 

      } 
      if (!File.Exists(context.Server.MapPath("new.txt"))) 
      { 

       xlWorkBook.SaveAs(context.Server.MapPath("new.txt"), Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); 

      } 

    string file = context.Server.MapPath("new.txt"); 
      byte[] myByte = File.ReadAllBytes(file); 

      File.Delete(context.Server.MapPath("new.txt")); 

      context.Response.Clear(); 
      context.Response.BinaryWrite(myByte); 
      context.Response.Flush(); 
      context.Response.Close(); 

答えて

6

使用System.IO.Path.GetTempFileName()又はPath.GetRandomFileName()方法。

+1

+1。また、すでに存在する場合に削除するという方法は、以前の実行とは異なるパスを試みるため、削除するロジックが失われるため、操作の最後にファイルを削除するロジックを変更する必要があります。 –

関連する問題