拡張子が.csvの一意の一時ファイルを生成する必要があります。
私が今やっていることは
string filename = System.IO.Path.GetTempFileName().Replace(".tmp", ".csv");
ただし、これは.csvファイルが一意であることを保証するものではありません。
衝突が発生する可能性は非常に低いことはわかっていますが(特に、.tmpファイルを削除しないと考える場合)、このコードは私にはよく見えません。
もちろん、ランダムなファイル名を手動で生成して、最終的に一意のファイル名を見つけることもできます(問題にはなりません)が、他の人がこの問題に対処する良い方法を見つけたかどうか知りたいです。
GetTempFileName()
が作成されることに注意してください。-文字列をすぐに別の文字列に変更すると、一時ディレクトリに新しいゼロバイトファイルが作成されます(他の人が指摘しているように、そこに65535個のファイルがあると、最終的に失敗します...)- -これを回避するには、そのフォルダーに作成したファイル(によって返されるファイルを含むGetTempFileName()
、理想的には、finallyブロック)を必ず削除してください。